最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.NET對SQLServer的通用數(shù)據(jù)庫訪問類

 更新時間:2016年02月24日 15:49:49   投稿:lijiao  
這篇文章主要實現(xiàn)了ASP.NET對SQLServer的通用數(shù)據(jù)庫訪問類

本文模仿實現(xiàn)數(shù)據(jù)庫訪問的通用類,代碼清晰,而且很實用,包括了對數(shù)據(jù)庫的所有的常用的操作。

  /// <summary>
  /// 數(shù)據(jù)庫訪問通用類
  /// </summary>
  public class SqlHelper
  {
  private string connectionString;
  /// <summary>
  /// 設(shè)定數(shù)據(jù)庫訪問字符串
  /// </summary>
  public string ConnectionString
  {
  set { connectionString = value; }
  }
  /// <summary>
  /// 構(gòu)造函數(shù)
  /// </summary>
  /// <param name="connectionString">數(shù)據(jù)庫訪問字符串</param>
  public SqlHelper(string connectionString)
  {
  this.connectionString = connectionString;
  }
  /// <summary>
  /// 執(zhí)行一個查詢,并返回查詢結(jié)果
  /// </summary>
  /// <param name="sql">要執(zhí)行的sql語句</param>
  /// <param name="commandType">要執(zhí)行的查詢語句的類型,如存儲過程或者sql文本命令</param>
  /// <returns>返回查詢結(jié)果集</returns>
  public DataTable ExecuteDataTable(string sql,CommandType commandType)
  {
  return ExecuteDataTable(sql, commandType, null);
  }
  /// <summary>
  /// 執(zhí)行一個查詢,并返回結(jié)果集
  /// </summary>
  /// <param name="sql">要執(zhí)行的sql文本命令</param>
  /// <returns>返回查詢的結(jié)果集</returns>
  public DataTable ExecuteDataTable(string sql)
  {
  return ExecuteDataTable(sql, CommandType.Text, null);
  }
  /// <summary>
  /// 執(zhí)行一個查詢,并返回查詢結(jié)果
  /// </summary>
  /// <param name="sql">要執(zhí)行的sql語句</param>
  /// <param name="commandtype">要執(zhí)行查詢語句的類型,如存儲過程或者sql文本命令</param>
  /// <param name="parameters">Transact-SQL語句或者存儲過程參數(shù)數(shù)組</param>
  /// <returns></returns>
  public DataTable ExecuteDataTable(string sql, CommandType commandtype, SqlParameter[] parameters)
  {
  DataTable data = new DataTable(); //實例化datatable,用于裝載查詢結(jié)果集
  using (SqlConnection con = new SqlConnection(connectionString))
  {
  using (SqlCommand cmd = new SqlCommand(sql, con))
  {
  cmd.CommandType = commandtype;//設(shè)置command的commandType為指定的Commandtype
  //如果同時傳入了參數(shù),則添加這些參數(shù)
  if (parameters != null)
  {
  foreach (SqlParameter parameter in parameters)
  {
  cmd.Parameters.Add(parameter);
  }
  }
  //通過包含查詢sql的sqlcommand實例來實例化sqldataadapter
  SqlDataAdapter adapter = new SqlDataAdapter(cmd);
  adapter.Fill(data);//填充datatable
  }
  }
  return data;
  }
  /// <summary>
  /// 返回一個SqlDataReader對象的實例
  /// </summary>
  /// <param name="sql">要執(zhí)行的SQl查詢命令</param>
  /// <returns></returns>
  public SqlDataReader ExecuteReader(string sql)
  {
  return ExecuteReader(sql, CommandType.Text, null);
  }
  /// <summary>
  ///
  /// </summary>
  /// <param name="sql">要執(zhí)行的sql語句</param>
  /// <param name="commandType">要執(zhí)行查詢語句的類型,如存儲過程或者SQl文本命令</param>
  /// <returns></returns>
  public SqlDataReader ExecuteReader(string sql,CommandType commandType)
  {
  return ExecuteReader(sql, commandType, null);
  }
  /// <summary>
  /// 返回一個sqldatareader對象的實例
  /// </summary>
  /// <param name="sql"></param>
  /// <param name="commandType"></param>
  /// <param name="parameters"></param>
  /// <returns></returns>
  public SqlDataReader ExecuteReader(string sql, CommandType commandType, SqlParameter[] parameters)
  {
  SqlConnection con = new SqlConnection(connectionString);
  SqlCommand cmd = new SqlCommand(sql, con);
  if (parameters != null)
  {
  foreach (SqlParameter parameter in parameters)
  {
  cmd.Parameters.Add(parameters);
  }
  }
  con.Open();
  //CommandBehavior.CloseConnection參數(shù)指示關(guān)閉reader對象時關(guān)閉與其關(guān)聯(lián)的Connection對象
  return cmd.ExecuteReader(CommandBehavior.CloseConnection);
  }
  /// <summary>
  /// 執(zhí)行一個查詢,返回結(jié)果集的首行首列。忽略其他行,其他列
  /// </summary>
  /// <param name="sql">要執(zhí)行的SQl命令</param>
  /// <returns></returns>
  public Object ExecuteScalar(string sql)
  {
  return ExecuteScalar(sql, CommandType.Text, null);
  }
  /// <summary>
  ///
  /// </summary>
  /// <param name="sql"></param>
  /// <param name="commandType"></param>
  /// <returns></returns>
  public Object ExecuteScalar(string sql, CommandType commandType)
  {
  return ExecuteScalar(sql, commandType, null);
  }
  /// <summary>
  ///
  /// </summary>
  /// <param name="sql"></param>
  /// <param name="commandType">參數(shù)類型</param>
  /// <param name="parameters"></param>
  /// <returns></returns>
  public Object ExecuteScalar(string sql,CommandType commandType, SqlParameter[] parameters)
  {
  Object result=null;
  SqlConnection con=new SqlConnection(connectionString);
  SqlCommand cmd=new SqlCommand(sql,con);
  cmd.CommandType= commandType;
  if(parameters!=null)
  {
  foreach (SqlParameter parapmeter in parameters)
  {
  cmd.Parameters.Add(parapmeter);
  }
  }
  con.Open();
  result=cmd.ExecuteScalar();
  con.Close();
  return result;
  }
  /// <summary>
  /// 對數(shù)據(jù)庫進行增刪改的操作
  /// </summary>
  /// <param name="sql">要執(zhí)行的sql命令</param>
  /// <returns></returns>
  public int ExecuteNonQuery(string sql)
  {
  return ExecuteNonQuery(sql, CommandType.Text, null);
  }
  /// <summary>
  /// 數(shù)據(jù)庫進行增刪改的操作
  /// </summary>
  /// <param name="sql">對數(shù)據(jù)庫進行操作的sql命令</param>
  /// <param name="commandType">要執(zhí)行查詢語句的類型,如存儲過程或者sql文本命令</param>
  /// <returns></returns>
  public int ExecuteNonQuery(string sql, CommandType commandType)
  {
  return ExecuteNonQuery(sql, commandType, null);
  }
  /// <summary>
  /// 對數(shù)據(jù)庫進行增刪改的操作
  /// </summary>
  /// <param name="sql">要執(zhí)行的sql語句</param>
  /// <param name="commandType">要執(zhí)行的查詢語句類型,如存儲過程或者sql文本命令</param>
  /// <param name="parameters">Transact-SQL語句或者存儲過程的參數(shù)數(shù)組</param>
  /// <returns></returns>
  public int ExecuteNonQuery(string sql, CommandType commandType, SqlParameter[] parameters)
  {
  int count = 0;
  SqlConnection con = new SqlConnection(connectionString);
  SqlCommand cmd = new SqlCommand(sql, con);
  cmd.CommandType = commandType;
  if (parameters != null)
  {
  foreach(SqlParameter parameter in parameters)
  {
  cmd.Parameters.Add(parameter);
  }
  }
  con.Open();
  count = cmd.ExecuteNonQuery();
  con.Close();
  return count;
  }
  /// <summary>
  /// 返回當前連接的數(shù)據(jù)庫中所有用戶創(chuàng)建的數(shù)據(jù)庫
  /// </summary>
  /// <returns></returns>
  public DataTable GetTables()
  {
  DataTable table = null;
  using (SqlConnection con = new SqlConnection(connectionString))
  {
  con.Open();
  table = con.GetSchema("Tables");
  }
  return table;
  }
  }

    如果我們建立了一個對數(shù)據(jù)庫訪問的通用類以后,在隨數(shù)據(jù)庫進行操作的時候嗎,就只需要先實例化對象,然后根據(jù)自己的需要,調(diào)用相應(yīng)的方法就可以完成對數(shù)據(jù)庫的所有操作。這就是數(shù)據(jù)庫訪問層和業(yè)務(wù)邏輯層分開的好處。
    這樣書寫的代碼,可以大大的減少我們代碼的復(fù)雜度,而且,繁瑣度也大大的降低了。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

最新評論

武义县| 临安市| 南通市| 兴业县| 松溪县| 察雅县| 昌黎县| 横山县| 军事| 古田县| 新乡市| 金沙县| 沾化县| 凤翔县| 建瓯市| 上饶市| 文山县| 贺州市| 光泽县| 晴隆县| 信宜市| 博湖县| 湛江市| 兰溪市| 锡林浩特市| 富源县| 子长县| 泸州市| 赫章县| 永新县| 江西省| 黄陵县| 锦州市| 梁河县| 霍山县| 淮北市| 堆龙德庆县| 巴彦县| 广州市| 日照市| 左云县|