详谈使用ADO .NET存储过程
创始人
2024-06-10 14:10:57
0

#T#关于存储过程我想大家知道很多了吧,在这里我就不详细的介绍了,现在我们来看看如何在ADO.NET中使用它了。调用ADO .NET存储过程只与常规SQL语句稍微不同。你应当将ADO.NET存储过程的名字指定为SqlCommand对象的命令文本。命令文本可以通过SqlCommand的构造函数或通过CommandText属性指定。在下面的示例代码中,存储过程的名字是byroyalty.

  1. SqlCommand cmd = new SqlCommand("byroyalty", conn);  
  2. cmd.CommandType = CommandType.StoredProcedure;  
  3. SqlParameter par = new SqlParameter("@percentage", SqlDbType.Int);  
  4. par.Direction = ParameterDirection.Input;  
  5. par.Value = 15;cmd.Parameters.Add(par);  
  6. SqlDataReader dr = cmd.ExecuteReader(); 

为帮助SqlCommand辨认出将执行的命令是一个ADO.NET存储过程,应当将CommandType属性设置为特定的值。

CommandType.StoredProcedure

它是在CommandType枚举值(即可以在ADO .NET中使用的所有可以得到的命令类型)中的一个值。存储过程可能需要一个或多个参数才能运行。在这种情况下,你需要使用SqlParameter类定义参数。参数具有@前缀名,并是与SQL Server兼容的类型。另外,它还要有一个方向:输入,输出还是两种都有,当然它得是一个值。。NET 类型系统不同于SQL Server类型系统,你必须求助于SqlDbType枚举列表得到正确的类型。例如,下面的片断对。NET32位整型求值。

SqlDbType.Int

SqlCommand 类拥有Parameters集合,此集合为SQL命令的占位符和存储过程是定义的所有参数存储实际的值。要向集合中增加参数,只需调用add方法。注意,如果你以SQL Server管理提供者或用于OLE DB .NET提供者的位置标记为目标,那么在命令命令文本中你必须使用已命名的参数。存储过程的输出然后通过你所使用的ExecuteXXX方法提供的接口进行管理。

SqlCommand 属性

一条命令在过一定时间后就会超时。如果你知道要经过很长的操作,你就可能希望设置这种限制。象ADO中那样,检查的属性是CommandTimeout,其默认值是30秒。与ADO不同,ADO .NET使你可通过CommandBehavior枚举指定命令的期望行为。这样的值指定了对结果的描述,并指定查询如何影响数据源。在β1版本中,可以为每个命令设置CommandBehavior属性。从β2版开始,只能使用CommandBehavior枚举值作为ExecuteReader的参数。对于其它选项,你可以使用查询命令限制获得的关键字和结构信息。在这种情况下,命令执行时不会对选择的行进行锁定。这种行为是由KeyInfo标记设定的。

作为可选项,可能只需得到列信息,而不通过加锁影响数据库的状态。这个选项是SchemaOnly.另一个选项,SingleResult,使你能够指定只返回一个结果集,而不论命令可以得到多少个结果集。在这种情况下,命令只返回找到的第一个结果集。第四个选项是CloseConnection,它强迫 SqlDataReader对象与一个查询命令联结起来,以期望在Close方法的最后一步自动关闭链接。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
规避非法攻击 用好路由器远程管... 单位在市区不同位置设立了科技服务点,每一个服务点的员工都通过宽带路由器进行共享上网,和单位网络保持联...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
范例解读VB.NET获取环境变... VB.NET编程语言的使用范围非常广泛,可以帮助开发人员处理各种程序中的需求,而且还能对移动设备进行...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...