程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 在ASP.NET中用存儲過程執行SQL語句

在ASP.NET中用存儲過程執行SQL語句

編輯:關於ASP.NET

       存儲過程:是一組為了完成特定功能的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.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

      }

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved