带输入参数ADO.NET存储过程调用案例分析

开发 后端
ADO.NET存储过程是在编程中常用到的,文章这里就带输入参数的存储过程调用做了详细的介绍,希望对大家有帮助。

经过长时间学习ADO.NET存储过程,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西。此示例很简单,因为存储过程不需要任何输入参数。也就是说,查找十件最贵的产品不需要任何外部信息。无需外界帮助,存储过程即可完成此操作。然而,多数存储过程都需要输入参数来执行其功能。在下一个示例中,让我们看看如何向ADO.NET存储过程传递输入参数。我们将使用 CustomerID 来获取相关客户的所有订单,并使用名为 CustOrderHist 的ADO.NET存储过程(已存在于 Northwind 数据库中)。

在已使用的表单上再创建一个按钮,并将以下代码行放到按钮的 Click 事件后面:

  1. Dim sConnectionString As String = _ 
  2. "server=localhost;uid=sa;pwd=;database=Northwind"  
  3. Dim cnNorthwind As New SqlConnection(sConnectionString)  
  4. Dim cmdOrders As New SqlCommand("CustOrderHist", cnNorthwind)  
  5. cmdOrders.CommandType = CommandType.StoredProcedure  
  6. ' 为存储过程设置参数  
  7. Dim prmCustomerID As New SqlParameter()  
  8. prmCustomerID.ParameterName = "@CustomerID" 
  9. prmCustomerID.SqlDbType = SqlDbType.VarChar  
  10. prmCustomerID.Size = 5 
  11. prmCustomerID.Value = "ALFKI" 
  12. cmdOrders.Parameters.Add(prmCustomerID)  
  13. Dim daGetOrders As New SqlDataAdapter(cmdOrders)  
  14. Dim dsOrders As New DataSet()  
  15. daGetOrders.Fill(dsOrders, "Orders")  
  16. DataGrid1.DataSource = dsOrders.Tables("Orders") 

#T#此代码与上一个示例中的代码非常相似,不同之处在于创建 Command 对象之后,为其配置了 Parameter 对象并将此对象添加到 Command 的参数集合中。在此示例中(更接近于演示软件)将对客户 ID 进行硬编码,参数的 Value 属性通常会设置为某些用户输入数据。但是,参数的其他属性可以完全象此示例中那样设置。此示例中的所有参数设置都是显式设置。某些开发人员喜欢这种样式,因为它便于说明。但某些开发人员喜欢使用代码行较少的等价方法:

  1. Dim sConnectionString As String = _ 
  2. "server=localhost;uid=sa;pwd=;database=Northwind"  
  3. Dim cnNorthwind As New SqlConnection(sConnectionString)  
  4. Dim cmdOrders As New SqlCommand("CustOrderHist", cnNorthwind)  
  5. cmdOrders.CommandType = CommandType.StoredProcedure  
  6. cmdOrders.Parameters.Add(New _  
  7. SqlParameter("@CustomerID", SqlDbType.VarChar, 5))  
  8. cmdOrders.Parameters("@CustomerID").Value = "ALFKI" 
  9. Dim daGetOrders As New SqlDataAdapter(cmdOrders)  
  10. Dim dsOrders As New DataSet()  
  11. daGetOrders.Fill(dsOrders, "Orders")  
  12. DataGrid1.DataSource = dsOrders.Tables("Orders") 

此代码与上一示例的作用完全相同。但每个参数只需要两行代码,而不是六行。如果存储过程包含大量参数(如后面某些示例所示),所需代码行的多少就会有明显区别,因此在后面部分,我们将使用此表单。

责任编辑:田树 来源: 博客
相关推荐

2009-11-11 11:08:03

ADO.NET存储过程

2009-12-21 14:04:48

ADO.NET参数

2009-11-12 10:24:19

ADO.NET代码

2009-11-04 16:23:09

ADO.NET存储过程

2009-11-11 13:38:04

ADO.NET sql

2009-11-03 16:27:43

ADO.NET Ent

2009-12-23 17:05:35

ADO.NET调用

2009-11-11 11:19:57

ADO.NET使用

2009-11-11 10:39:19

ADO.NET Fin

2009-11-12 13:26:56

使用ADO.NET参数

2009-11-12 10:45:45

ADO.NET连接测试

2009-12-22 16:50:44

ADO.NET元素

2009-12-24 09:34:47

调用ADO.NET

2009-11-13 11:18:22

ADO.NET修改数据

2009-11-04 14:54:42

ADO.NET与Pow

2009-11-04 11:02:23

ADO.NET Dat

2009-11-04 13:51:46

ADO.NET性能

2009-12-31 14:28:09

ADO.NET参数

2009-12-30 14:21:21

ADO.NET设置

2009-12-25 16:56:36

ADO.NET建立连接
点赞
收藏

51CTO技术栈公众号