注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

樱之花

叶散的时候,你明白欢聚;花谢的时候,你明白青春.

 
 
 

日志

 
 
关于我

分类中“我的实验室”是我在日常工作中的一些知识总结,有些写的比较匆忙,可能大家在阅读时会产生困扰,后期有时间我会重新整理编辑,谢谢大家的到访,您们的支持是我前进的动力!

网易考拉推荐

如何在.NET中用存储过程执行SQL语句  

2014-04-24 14:49:24|  分类: .NET/C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

存储过程执行效率比单独的SQL语句效率高。
样编写存储过程?存储过程在SQL Server 2005对应数据库的可编程性目录下。
比如,创建一个存储过程

代码如下:

create procedure procNewsSelectNewNews
as
begin
select top 10 n.id,n.title,n.createTime,c.name from news n
inner join category c on n.caId=c.id
order by n.createTime desc
end


执行定义好的存储过程
exec procNewsSelectNewNews
存储过程返回的是一张表

代码如下:

public DataTable test(string procName)
{
DataTable dt=new DataTable();
cmd=new SqlCommand(procName,GetConn()); //数据库连接和连接开闭,都放在了GetConn()方法中
cmd.CommandType=CommandType.StoredProcedure; //定义SQL语句命令类型为存储过程
using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection));//方法将SQL语句发送给SqlConnection并生产一个SqlDataReader类对象,该SqlDataReader对象包含SQL命令返回的数据
{ dt.Load(sdr); //load查询dataread查询的结果 }
return dt;
}


当一个项目中既要用到SQL语句又要用到存储过程的时候,而执行SQL语句和执行存储过程的方法都差不多,就是相差一个CommandType类型,所以如果有这样的情况,我们可以重构关于SQL语句和存储过程这两个方法

代码如下:

public DataTable ExecuteQuery(string sqlText,CommandType ct); //不仅传入SQL语句还传入一个命令类型
{
DataTable dt=new DataTable();
cmd=new SqlCommand(sqlText,GetConn());
cmd.CommandType=ct;
using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{ dt.Load(sdr);}
return dt;
}


查询方法写好之后,就可以写SQL语句或存储过程的方法了
比如:存储过程

代码如下:

public DataTable SelectNewNews()
{
return sqlhelper.ExecuteQuery(“存储过程名”,CommandType.StoredProcedure)
}


SQL语句

代码如下:

public DataTable SelectAll()
{
DataTable dt=new DataTable();
string sql=”select * from news”;
dt=sqlhelper.ExecuteQuery(sql,CommandType.Text);·
return dt
}
  评论这张
 
阅读(367)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017