扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:冷枫 来源:CSDN 2007年9月24日
关键字:
在本页阅读全文(共2页)
先看段存储过程的形式:create procedure cateproc (@CategoryID int(4)) as select * from Categories where CategoryID=@CategoryID? return。
这个是数据库中的存储过程实现方式,要在程序中调用存储过程,一种方法是使用Command对象的 CommandType属性来实现。CommandType有三个枚举值:Text,TableDirect,StoredProcedure。只需将CommandType属性设为第三个值即可实现调用存储过程。例:
string strCon="server=localhost;database=Northwind;Trusted_Connection=Yes;";
SqlConnection con=new SqlConnection(strCon);
con.Open();
SqlCommand cmd=con.CreateCommand();
cmd.CommandText="cateproc";
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@CategoryID",SqlDbType.Int,4);
cmd.Parameters["CategoryID"].Value="2";
SqlDataReader r=cmd.ExecuteReader();
while(r.Read())
{
Response.Write(r.GetString(2)+"
");
}
con.Close();
其实在程序中实现调用存储过程的方式跟参数化查询很类似,有点旧鞋翻新的味道。
cmd.CommandType=CommandType.StoredProcedure;这种方式有个缺点,就是当要查询的表,视图或存储过程的名称中有特殊的字符(如空格)的话,则将无法识别。因此还有一种方式就是:
cmd.CommandText="{Call cateproc(?)}"; //这里是调用存储过程,问号为参数
cmd.CommandType=CommandType.Text; //关键是这里。
设置命令执行超时
命令超时是指Command对象在等待结果的时间,(默认为30秒)如果在30秒内没执行查询,则Command抛出一个异常。也可以自己进行设置。例:cmd.CommandTimeout=60;
取消执行查询
有时因某种原因,需要临时取消命令的执行,可调用Command对象的Cancel()方法来退出执行,如果在未执行查询之前,Cancel()将不做任何事。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=356372
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者