服务器之家

服务器之家 > 正文

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

时间:2019-09-03 11:52     来源/作者:ASP.NET之家

存储过程执行效率比单独的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 

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
叠猫猫队长可以退出吗 叠猫猫队长怎么换队伍
叠猫猫队长可以退出吗 叠猫猫队长怎么换队伍 2019-06-05
逃跑吧少年怎么卡皮肤 逃跑吧少年卡永久皮肤技巧
逃跑吧少年怎么卡皮肤 逃跑吧少年卡永久皮肤技巧 2019-06-21
返回顶部