C# 存储过程得到数据集

来源:互联网 发布:淘宝订单险开通条件 编辑:程序博客网 时间:2024/06/08 12:35

CREATE PROCEDURE dbo.myCurser
 /*
 (
 @parameter1 int = 5,
 @ datatype OUTPUT
 )
 */
AS
 /* SET NOCOUNT ON */
 BEGIN
   SELECT * FROM T_stu;
 END
 RETURN

然后在C#中调用:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;

namespace db3
{
    class test
    {

        static void Main(String[] args)
        {
            setDomain();
            string connectionString = ConfigurationManager.AppSettings["connectString"];
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();

                SqlCommand command = connection.CreateCommand();
              //  SqlTransaction transaction;

                // Start a local transaction.
         

                // Must assign both transaction object and connection
                // to Command object for a pending local transaction
                command.Connection = connection;
            
                try
                {
                    command.CommandText = "myCurser";
                    command.CommandType = CommandType.StoredProcedure;
                    // Attempt to commit the transaction.
                    SqlDataAdapter adapter = new SqlDataAdapter(command);
                    DataSet ds = new DataSet();
                    adapter.Fill(ds);
                    DataTable dataTable = ds.Tables[0];
                   for (int i = 0; i < dataTable.Rows.Count; i++)
                    {
                        DataRow row = dataTable.Rows[i];
                        string name = Convert.ToString(row["name"]);
                        Console.WriteLine(name);
                    }
                    Console.WriteLine("Both records are written to database.");
                    Console.ReadKey();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Commit Exception Type: {0}", ex.GetType());
                    Console.WriteLine("  Message: {0}", ex.Message);

                    // Attempt to roll back the transaction.
                    try
                    {
                       
                    }
                    catch (Exception ex2)
                    {
                        // This catch block will handle any errors that may have occurred
                        // on the server that would cause the rollback to fail, such as
                        // a closed connection.
                        Console.WriteLine("Rollback Exception Type: {0}", ex2.GetType());
                        Console.WriteLine("  Message: {0}", ex2.Message);
                    }
                    Console.ReadKey();
                }
            }

        }
        private static void setDomain()
        {

            string datadir = AppDomain.CurrentDomain.BaseDirectory;
            if (datadir.EndsWith(@"\bin\Debug\") || datadir.EndsWith(@"\bin\Release\"))
            {
                datadir = System.IO.Directory.GetParent(datadir).Parent.Parent.FullName;
                AppDomain.CurrentDomain.SetData("DataDirectory", datadir);
            }
        }

    }
}


 

原创粉丝点击