在ASP.NET中用存儲過程執(zhí)行SQL語句
來源:易賢網 閱讀:1006 次 日期:2014-10-13 10:26:01
溫馨提示:易賢網小編為您整理了“在ASP.NET中用存儲過程執(zhí)行SQL語句”,方便廣大網友查閱!

存儲過程:是一組為了完成特定功能的SQL語句集,經編譯后存儲在數(shù)據庫中。用戶通過指定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。存儲過程是數(shù)據庫中的一個重要對象,任何一個設計良好的數(shù)據庫應用程序都應該用到存儲過程。by google

存儲過程執(zhí)行效率比單獨的SQL語句效率高。

樣編寫存儲過程?存儲過程在SQL Server 2005對應數(shù)據庫的可編程性目錄下。

比如,創(chuàng)建一個存儲過程

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

執(zhí)行定義好的存儲過程

exec procNewsSelectNewNews

存儲過程返回的是一張表

public DataTable test(string procName)

{

DataTable dt=new DataTable();

cmd=new SqlCommand(procName,GetConn()); //數(shù)據庫連接和連接開閉,都放在了GetConn()方法中

cmd.CommandType=CommandType.StoredProcedure; //定義SQL語句命令類型為存儲過程

using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection));//方法將SQL語句發(fā)送給SqlConnection并生產一個SqlDataReader類對象,該SqlDataReader對象包含SQL命令返回的數(shù)據

{ dt.Load(sdr); //load查詢dataread查詢的結果 }

return dt;

}

當一個項目中既要用到SQL語句又要用到存儲過程的時候,而執(zhí)行SQL語句和執(zhí)行存儲過程的方法都差不多,就是相差一個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

}

更多信息請查看IT技術專欄

更多信息請查看網絡編程

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網