在ASP.NET中用預存程序執行SQL語句

來源:互聯網
上載者:User

預存程序執行效率比單獨的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
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.