首页 > 网站 > 建站经验 > 正文

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

2019-11-02 14:23:23
字体:
来源:转载
供稿:网友

   存储过程:是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。by google

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

酷猫电影网[www.aikan.tv/special/kumiaodianyingwang/]
mmandType=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

  }

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表