在ASP.NET中用存储过程执行SQL语句
存储过程执行效率比单独的SQL语句效率高。
样编写存储过程?存储过程在SQL Server 2005对应数据库的可编程性目录下。
比如,创建一个存储过程
执行定义好的存储过程
exec procNewsSelectNewNews
存储过程返回的是一张表
当一个项目中既要用到SQL语句又要用到存储过程的时候,而执行SQL语句和执行存储过程的方法都差不多,就是相差一个CommandType类型,所以如果有这样的情况,我们可以重构关于SQL语句和存储过程这两个方法
查询方法写好之后,就可以写SQL语句或存储过程的方法了
比如:存储过程
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 }
相关推荐
zjyzz 2020-08-16
snowguy 2020-06-01
Omega 2020-08-16
minggehenhao 2020-07-28
zhaojp0 2020-06-27
zjuwangleicn 2020-06-25
wenjieyatou 2020-06-17
liaomingwu 2020-06-16
hungzz 2020-06-16
muzirigel 2020-06-14
gsmfan 2020-06-14
ncomoon 2020-06-14
xiaobaif 2020-06-13
Rain 2020-06-12
hanshangzhi 2020-06-12
talkingDB 2020-06-12
IBMRational 2020-06-09