ADO.NET 基礎教程(二)

來源:互聯網
上載者:User
ado|基礎教程  

上一節講到了怎樣使用ADO.NET來查詢資料,這節講怎麼樣運行SQL的SELECT、INSERT和UPDATE命令及預存程序

1、預存程序

C#的代碼如下:

/// <summary>
  /// 預存程序參數結構
  /// </summary>
  public struct ProcParam
  {
   public string ParamName;
   public string ParamValue;
   public System.Data.SqlDbType ParamType ;
  }

/// <summary>
  /// 執行一個返回資料集的預存程序
  /// </summary>
  /// <param name="strProcName">預存程序名稱</param>
  /// <param name="alParamName" >參數名稱</param>
  /// <param name="alParamValue" >參數值</param>
  /// <param name="constring">資料連線串</param>
  /// <returns></returns>
  public static System.Data.SqlClient.SqlDataReader  ExecProcedure(string strProcName,System.Collections.ArrayList alParamName,System.Collections.ArrayList alParamValue,string constring)
  {
   
   System.Data.SqlClient.SqlConnection cn=new System.Data.SqlClient.SqlConnection (constring);
   cn.Open ();
   System.Data.SqlClient.SqlCommand cmd=new System.Data.SqlClient. SqlCommand ();
   cmd.Connection =cn;
   cmd.CommandType =System.Data.CommandType.StoredProcedure ;
   cmd.CommandText =strProcName;
   for(int i=0;i<alParamName.Count ;i++)
   {
    System.Data.SqlClient.SqlParameter  param=new System.Data.SqlClient.SqlParameter (alParamName[i].ToString (),alParamValue[i].ToString ());
    cmd.Parameters.Add (param);
   }
   System.Data.SqlClient.SqlDataReader dr;
   dr=cmd.ExecuteReader ();
   return dr;
  }

上述代碼可以執行任意參數的預存程序(返回一個資料集)

2、直接SQL命令

  /// <summary>
  /// 執行一個返回字串的SQL SCRIPT
  /// </summary>
  /// <param name="constring" >串連串</param>
  /// <param name="SQL_COMMAND" >SQL命令</param>
  /// <returns>返回資料集</returns>
  public static string  GetDataString(string SQL_COMMAND,string constring)
  { 
   System.Data.SqlClient.SqlConnection cn=new System.Data.SqlClient.SqlConnection (constring);
   cn.Open ();
   System.Data.SqlClient.SqlCommand cmd=new System.Data.SqlClient. SqlCommand ();
   cmd.Connection =cn;
   cmd.CommandType =System.Data.CommandType.Text  ;
   cmd.CommandText =SQL_COMMAND;
   string str="";
   try
   {
    str=cmd.ExecuteScalar().ToString ();
   }
   catch(System.Data.SqlClient.SqlException e)
   {
    System.Diagnostics.Debug.WriteLine (e.Message );
   }
   catch(Exception ex)
   {
    System.Diagnostics.Debug.WriteLine (ex.Message );
   }
   return str;
  }

/// <summary>
  /// 執行一個無返回的SQL
  /// </summary>
  /// <param name="SQL_COMMAND"></param>
  /// <param name="constring"></param>
  /// <returns></returns>
  public static void  Executesql(string SQL_COMMAND,string constring)
  { 
   System.Data.SqlClient.SqlConnection cn=new System.Data.SqlClient.SqlConnection (constring);
   cn.Open ();
   System.Data.SqlClient.SqlCommand cmd=new System.Data.SqlClient. SqlCommand ();
   cmd.Connection =cn;
   cmd.CommandType =System.Data.CommandType.Text  ;
   cmd.CommandText =SQL_COMMAND;
   try
   {
    cmd.ExecuteNonQuery ();
   }
   catch(System.Data.SqlClient.SqlException e)
   {
    System.Diagnostics.Debug.WriteLine (e.Message );
   }
   catch(Exception ex)
   {
    System.Diagnostics.Debug.WriteLine (ex.Message );
   }
  }

以上代碼建議放在一個類中,如果有問題請與我聯絡msn:ilxc8292@hotmail.com




相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。