我们在使用存储过程时,经常会SELECT一条或多条记录。 你可以采用两种方法来创建这样的存储过程。
首先我们创建一个名为C# GetAllCustomers()方法,代码如下:
- public static void GetAllCustomers()
- {
- SqlConnection cnn = new SqlConnection
- ("context connection=true");
- cnn.Open();
- SqlCommand cmd = new SqlCommand();
- cmd.Connection = cnn;
- cmd.CommandText = "select * from customers";
- SqlDataReader reader = cmd.ExecuteReader();
- SqlContext.Pipe.Send(reader);
- reader.Close();
- cnn.Close();
- }
这个C# GetAllCustomers()方法用了一个[SqlProcedure]属性来修饰。 在方法内创建一个SqlConnection和一个SqlCommand对象。然后使用ExecuteReader()方法来执行SELECT语句。接下来用Send()方法将取得的SqlDataReader数据发送到客户端。***就是关闭SqlDataReader和SqlConnection。 在这种方法中,是我们自己创建的SqlDataReader。其实,我们也可以把这个任务交给SqlContext类去完成,代码如下:
- public static void GetCustomerByID
- (SqlString CustomerID)
- {
- SqlConnection cnn = new SqlConnection
- ("context connection=true");
- cnn.Open();
- SqlCommand cmd = new SqlCommand();
- cmd.Connection = cnn;
- cmd.CommandText = "select * from customers
- where customerid=@p1";
- SqlParameter p1 = new SqlParameter("@p1", CustomerID);
- cmd.Parameters.Add(p1);
- SqlContext.Pipe.ExecuteAndSend(cmd);
- cnn.Close();
- }
GetCustomerByID()方法需要一个参数 – CustomerID,它将从Customers表中返回某个customer的记录。这个方法内的代码,除了ExecuteAndSend()方法外,你应该都已经比较熟悉了。 ExecuteAndSend()方法接收一个SqlCommand对象作为参数,执行它就会返回数据集给客户端。以上介绍C# GetAllCustomers()方法
【编辑推荐】