在asp.net中我們經常會和資料庫打交道,也就會用到很多sql語句和存儲過程,直接使用sql語句會給我們帶來一些安全性問題,比如sql注入,存儲過程在程式中執行效率高,安全性高,且使用的資源比較少,存儲過程建立好以後,實際上已經編譯好了且存儲在資料庫中,而sql語句,寫好之後需要先執行再編譯,是以比較消耗資源,其以上優勢在程式員調用時,可以節省大量時間,給程式員效率的提升,可見在.NET開發中的分量。
在調用存儲過程之前必須要做的是添加引用語句:using system.data.sqlclient,要在程式中通路資料庫,一般的步驟是首先聲明一個資料庫連接配接SqlConnection,然後聲明一個資料庫指令SqlCommand,用來執行 SQL語句和存儲過程。先看執行個體:
1,執行沒有參數的存儲過程:
SqlConnection conn=new SqlConnection(“connectionString”);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = conn;
da.SelectCommand.CommandText = "NameOfProcedure";
解釋:建立連接配接對象,執行個體化擴充卡對象,達到一些資料并添加到資料集dataset中,指令語句NameOfProcedure就是存儲過程名稱,指令類型CommandType.StoredProcedure為存儲過程,完成調用後就可以與相關表格綁定即可。
2,下面執行的時代參數的存儲過程
da.SelectCommand.CommandType = CommandType.StoredProcedure;
(與1中的代碼完全相同,一下為添加的)
param = new SqlParameter("@ParameterName", SqlDbType.DateTime);
param.Direction = ParameterDirection.Input;
param.Value = Convert.ToDateTime(inputdate);
da.SelectCommand.Parameters.Add(param);
仔細看你會發現這和我們利用sql語句連接配接資料庫時,實行的參數化大緻相同,唯一多的就是參數的進出方向即:param.Direction = ParameterDirection.Input;輸入方向。首先是new一個參數執行個體 param 并指明其方向,就是所說的輸出輸入參數,然後通過轉換為param指定值,然後就是把這個param作為參數添加到指令語句中。
通過調用存儲過程,可以發現提高了程式員的開發速度,節省了開發時間,對代碼的維護更加容易,同時減少系統的大小,提高了執行效率,是以說在現實開發中存儲過程的實用價值也是可以肯定的。
本文轉自shenzhoulong 51CTO部落格,原文連結:http://blog.51cto.com/shenzhoulong/441260,如需轉載請自行聯系原作者