解析在ASP.NET中調(diào)用存儲(chǔ)過(guò)程的方法(2)_.Net教程
推薦:判斷瀏覽器是否接受Cookies 一種確定瀏覽器是否接受 Cookie 的方法是先編寫(xiě)一個(gè) Cookie,然后再?lài)L試讀取這個(gè) Cookie。如果不能讀取這個(gè) Cookie,則可以認(rèn)為該瀏覽器不接受 Cookie。 我編寫(xiě)了一個(gè)簡(jiǎn)單的示例來(lái)說(shuō)明
這樣就添加了一個(gè)輸入?yún)?shù)。若需要添加輸出參數(shù):
param = new SqlParameter("@ParameterName", SqlDbType.DateTime);
param.Direction = ParameterDirection.Output;
param.Value = Convert.ToDateTime(inputdate);
da.SelectCommand.Parameters.Add(param);
若要獲得參儲(chǔ)過(guò)程的返回值:
param = new SqlParameter("@ParameterName", SqlDbType.DateTime);
param.Direction = ParameterDirection.ReturnValue;
param.Value = Convert.ToDateTime(inputdate);
da.SelectCommand.Parameters.Add(param);
從上面的代碼我們可以看出,當(dāng)存儲(chǔ)過(guò)程比較多或者存儲(chǔ)過(guò)程的參數(shù)比較多時(shí),這種方法會(huì)大大影響開(kāi)發(fā)的速度;另外一方面,如果項(xiàng)目比較大,那么這些用于數(shù)據(jù)庫(kù)邏輯的函數(shù)在以后的維護(hù)中也是一個(gè)很大的負(fù)擔(dān)。那么,有沒(méi)有一種改進(jìn)的方法可以解決這個(gè)問(wèn)題呢?想到在執(zhí)行沒(méi)有參數(shù)的存儲(chǔ)過(guò)程時(shí)只需要傳入一個(gè)存儲(chǔ)過(guò)程的名字就可以調(diào)用相應(yīng)的存儲(chǔ)過(guò)程,而且在SqlServer數(shù)據(jù)庫(kù)中我們可以直接在查詢(xún)分析器中敲入“存儲(chǔ)過(guò)程名(參數(shù)列表)”樣的字符串就可以執(zhí)行存儲(chǔ)過(guò)程,那么,是否可以把這種思想應(yīng)用到應(yīng)用程序中呢?
于是在編譯器中鍵入相應(yīng)代碼。這些代碼是在調(diào)用不帶參數(shù)的存儲(chǔ)過(guò)程的代碼的基礎(chǔ)上改的。具體代碼如下:
SqlConnection conn=new SqlConnection(“connectionString”);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = conn;
da.SelectCommand.CommandText = "NameOfProcedure(’para1’,’para2’,para3)";
da.SelectCommand.CommandType = CommandType.StoredProcedure;
為了使代碼更具有代表性,要調(diào)用的存儲(chǔ)過(guò)程的第一個(gè)和第二個(gè)參數(shù)都為字符串類(lèi)型,第三個(gè)參數(shù)為整型。執(zhí)行以后發(fā)現(xiàn),完全可以達(dá)到預(yù)期的效果!
兩種調(diào)用方法的比較
通過(guò)比較我們可以看到,第二種方法具有一個(gè)很明顯的優(yōu)點(diǎn),那就是可以提高開(kāi)發(fā)速度,節(jié)省開(kāi)發(fā)時(shí)間,而且代碼容易維護(hù),在一定程度上也減少了系統(tǒng)大小。但是,由于對(duì)存儲(chǔ)過(guò)程參數(shù)的處理比較籠統(tǒng),如果要獲取輸出參數(shù)或者得到存儲(chǔ)過(guò)程的返回值,這種方法就不能滿足需要了。雖然如此,但是,這種方法畢竟可以讓開(kāi)發(fā)人員少些很大一部分的代碼。如果不需要獲取輸出參數(shù)和返回值,那么幾乎可以做到“一勞永逸”。因此在實(shí)際的程序開(kāi)發(fā)中,這種方法還是具有一定的實(shí)用價(jià)值的。
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- ASP.Net中無(wú)刷新執(zhí)行Session身份驗(yàn)證
- ASP.NET的實(shí)時(shí)天氣及24小時(shí)天氣預(yù)報(bào)
- .net中as和is之間的區(qū)別分析
- 在網(wǎng)頁(yè)中動(dòng)態(tài)的生成一個(gè)圖片
- .NET圖像界面按鈕的clicked事件淺談
- ASP.NET1.1中動(dòng)態(tài)樹(shù)的實(shí)現(xiàn)
- 動(dòng)態(tài)代理DynamicProxy 介紹
- 新手入門(mén)之ASP.NET2.0中的緩存技術(shù)解析
- .NET 線程基礎(chǔ)的使用介紹
- ASP.NET 2.0控件異步回調(diào)
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-解析在ASP.NET中調(diào)用存儲(chǔ)過(guò)程的方法(2)
。