科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道[冷枫]使用ADO.NET轻松操纵数据库(一)

[冷枫]使用ADO.NET轻松操纵数据库(一)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

使用ADO.NET轻松操纵数据库.

作者:冷枫 来源: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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章