解析在ASP.NET中調用存儲過程的方法(2)_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:判斷瀏覽器是否接受Cookies
       一種確定瀏覽器是否接受 Cookie 的方法是先編寫一個 Cookie,然后再嘗試讀取這個 Cookie。如果不能讀取這個 Cookie,則可以認為該瀏覽器不接受 Cookie。   我編寫了一個簡單的示例來說明

        這樣就添加了一個輸入參數。若需要添加輸出參數:


      param = new SqlParameter("@ParameterName", SqlDbType.DateTime);
      param.Direction = ParameterDirection.Output;
      param.Value = Convert.ToDateTime(inputdate);
      da.SelectCommand.Parameters.Add(param);


        若要獲得參儲過程的返回值:


      param = new SqlParameter("@ParameterName", SqlDbType.DateTime);
      param.Direction = ParameterDirection.ReturnValue;
      param.Value = Convert.ToDateTime(inputdate);
      da.SelectCommand.Parameters.Add(param);


        從上面的代碼我們可以看出,當存儲過程比較多或者存儲過程的參數比較多時,這種方法會大大影響開發的速度;另外一方面,如果項目比較大,那么這些用于數據庫邏輯的函數在以后的維護中也是一個很大的負擔。那么,有沒有一種改進的方法可以解決這個問題呢?想到在執行沒有參數的存儲過程時只需要傳入一個存儲過程的名字就可以調用相應的存儲過程,而且在SqlServer數據庫中我們可以直接在查詢分析器中敲入“存儲過程名(參數列表)”樣的字符串就可以執行存儲過程,那么,是否可以把這種思想應用到應用程序中呢?

        于是在編譯器中鍵入相應代碼。這些代碼是在調用不帶參數的存儲過程的代碼的基礎上改的。具體代碼如下:


      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;


        為了使代碼更具有代表性,要調用的存儲過程的第一個和第二個參數都為字符串類型,第三個參數為整型。執行以后發現,完全可以達到預期的效果!

        兩種調用方法的比較
        
        通過比較我們可以看到,第二種方法具有一個很明顯的優點,那就是可以提高開發速度,節省開發時間,而且代碼容易維護,在一定程度上也減少了系統大小。但是,由于對存儲過程參數的處理比較籠統,如果要獲取輸出參數或者得到存儲過程的返回值,這種方法就不能滿足需要了。雖然如此,但是,這種方法畢竟可以讓開發人員少些很大一部分的代碼。如果不需要獲取輸出參數和返回值,那么幾乎可以做到“一勞永逸”。因此在實際的程序開發中,這種方法還是具有一定的實用價值的。

      共2頁上一頁12下一頁
      來源:模板無憂//所屬分類:.Net教程/更新時間:2008-08-22
      相關.Net教程