C#中調用預存程序(帶返回參數 And 無返回參數)

來源:互聯網
上載者:User

  /// <summary>
  /// 預存程序執行函數
  /// </summary>
  /// <param name="strSpName">預存程序名</param>
  /// <param name="ht">參數資訊集</param>
  /// <param name="strParameterArray">需返回的參數名數組</param>
  /// <returns>存有傳回值的HashTable</returns>
  public void ExecStoredProcedure(string strSpName,Hashtable ht,string[] strParameterArray)
  { 
   SqlCommand comm = new SqlCommand(strSpName,Conn);
   comm.CommandType = CommandType.StoredProcedure;

   IDictionaryEnumerator htEnumerator = ht.GetEnumerator();
   while (htEnumerator.MoveNext())
    comm.Parameters.Add(htEnumerator.Key.ToString(),htEnumerator.Value);

   foreach (string strParameterName in strParameterArray)
    comm.Parameters[strParameterName].Direction = ParameterDirection.Output;

   try
   {
    OpenConn();                                                           //開啟資料庫連結
    comm.ExecuteNonQuery();
   }
   finally
   {
    CloseConn();                                                          //關閉資料庫連結
   }
   
   ht.Clear();
   foreach (string strParameterName in strParameterArray)
    ht.Add(strParameterName,comm.Parameters[strParameterName].Value);
  }

  /// <summary>
  /// 預存程序執行函數
  /// </summary>
  /// <param name="strSpName">預存程序名</param>
  /// <param name="ht">參數資訊集</param>
  public void ExecStoredProcedure(string strSpName,Hashtable ht)
  { 
   SqlCommand comm = new SqlCommand(strSpName,Conn);
   comm.CommandType = CommandType.StoredProcedure;

   IDictionaryEnumerator htEnumerator = ht.GetEnumerator();
   while (htEnumerator.MoveNext())
    comm.Parameters.Add(htEnumerator.Key.ToString(),htEnumerator.Value);

   try
   {
    OpenConn();                                                                               //開啟資料庫連結
    comm.ExecuteNonQuery();
   }
   finally
   {
    CloseConn();                                                                               //關閉資料庫連結
   }   
  }

調用方法:

  Hashtable ht = new Hashtable();
  ht.Add("@variable_1","參數1");
  ht.Add("@variable_2","參數2");
  ht.Add("@variable_3","參數3");

  //帶返回資料
  string[] variableList = {"@variable_2","@variable_3"};
  ExecStoredProcedure("預存程序名",Hashtable ht,variableList);
  //返回資料在Hashtable ht相對應的鍵中

  //不帶返回資料
  ExecStoredProcedure("預存程序名",Hashtable ht);

  //ExecStoredProcedure方法是一個2次重載的方法
  

  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.