主页 > 知识库 > ASP.NET对SQLServer的通用数据库访问类

ASP.NET对SQLServer的通用数据库访问类

热门标签:科大讯飞语音识别系统 服务器配置 地方门户网站 硅谷的囚徒呼叫中心 百度竞价排名 网站排名优化 集中运营管理办法 阿里云

本文模仿实现数据库访问的通用类,代码清晰,而且很实用,包括了对数据库的所有的常用的操作。

  /// summary>
  /// 数据库访问通用类
  /// /summary>
  public class SqlHelper
  {
  private string connectionString;
  /// summary>
  /// 设定数据库访问字符串
  /// /summary>
  public string ConnectionString
  {
  set { connectionString = value; }
  }
  /// summary>
  /// 构造函数
  /// /summary>
  /// param name="connectionString">数据库访问字符串/param>
  public SqlHelper(string connectionString)
  {
  this.connectionString = connectionString;
  }
  /// summary>
  /// 执行一个查询,并返回查询结果
  /// /summary>
  /// param name="sql">要执行的sql语句/param>
  /// param name="commandType">要执行的查询语句的类型,如存储过程或者sql文本命令/param>
  /// returns>返回查询结果集/returns>
  public DataTable ExecuteDataTable(string sql,CommandType commandType)
  {
  return ExecuteDataTable(sql, commandType, null);
  }
  /// summary>
  /// 执行一个查询,并返回结果集
  /// /summary>
  /// param name="sql">要执行的sql文本命令/param>
  /// returns>返回查询的结果集/returns>
  public DataTable ExecuteDataTable(string sql)
  {
  return ExecuteDataTable(sql, CommandType.Text, null);
  }
  /// summary>
  /// 执行一个查询,并返回查询结果
  /// /summary>
  /// param name="sql">要执行的sql语句/param>
  /// param name="commandtype">要执行查询语句的类型,如存储过程或者sql文本命令/param>
  /// param name="parameters">Transact-SQL语句或者存储过程参数数组/param>
  /// returns>/returns>
  public DataTable ExecuteDataTable(string sql, CommandType commandtype, SqlParameter[] parameters)
  {
  DataTable data = new DataTable(); //实例化datatable,用于装载查询结果集
  using (SqlConnection con = new SqlConnection(connectionString))
  {
  using (SqlCommand cmd = new SqlCommand(sql, con))
  {
  cmd.CommandType = commandtype;//设置command的commandType为指定的Commandtype
  //如果同时传入了参数,则添加这些参数
  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">要执行的SQl查询命令/param>
  /// returns>/returns>
  public SqlDataReader ExecuteReader(string sql)
  {
  return ExecuteReader(sql, CommandType.Text, null);
  }
  /// summary>
  ///
  /// /summary>
  /// param name="sql">要执行的sql语句/param>
  /// param name="commandType">要执行查询语句的类型,如存储过程或者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参数指示关闭reader对象时关闭与其关联的Connection对象
  return cmd.ExecuteReader(CommandBehavior.CloseConnection);
  }
  /// summary>
  /// 执行一个查询,返回结果集的首行首列。忽略其他行,其他列
  /// /summary>
  /// param name="sql">要执行的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">参数类型/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>
  /// 对数据库进行增删改的操作
  /// /summary>
  /// param name="sql">要执行的sql命令/param>
  /// returns>/returns>
  public int ExecuteNonQuery(string sql)
  {
  return ExecuteNonQuery(sql, CommandType.Text, null);
  }
  /// summary>
  /// 数据库进行增删改的操作
  /// /summary>
  /// param name="sql">对数据库进行操作的sql命令/param>
  /// param name="commandType">要执行查询语句的类型,如存储过程或者sql文本命令/param>
  /// returns>/returns>
  public int ExecuteNonQuery(string sql, CommandType commandType)
  {
  return ExecuteNonQuery(sql, commandType, null);
  }
  /// summary>
  /// 对数据库进行增删改的操作
  /// /summary>
  /// param name="sql">要执行的sql语句/param>
  /// param name="commandType">要执行的查询语句类型,如存储过程或者sql文本命令/param>
  /// param name="parameters">Transact-SQL语句或者存储过程的参数数组/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>
  /// 返回当前连接的数据库中所有用户创建的数据库
  /// /summary>
  /// returns>/returns>
  public DataTable GetTables()
  {
  DataTable table = null;
  using (SqlConnection con = new SqlConnection(connectionString))
  {
  con.Open();
  table = con.GetSchema("Tables");
  }
  return table;
  }
  }

    如果我们建立了一个对数据库访问的通用类以后,在随数据库进行操作的时候吗,就只需要先实例化对象,然后根据自己的需要,调用相应的方法就可以完成对数据库的所有操作。这就是数据库访问层和业务逻辑层分开的好处。
    这样书写的代码,可以大大的减少我们代码的复杂度,而且,繁琐度也大大的降低了。

以上就是本文的全部内容,希望对大家的学习有所帮助。

您可能感兴趣的文章:
  • 一个ASP.NET的MYSQL的数据库操作类自己封装的
  • asp.net Oracle数据库访问操作类
  • asp.net下使用DbProviderFactories的数据库操作类
  • asp.net下Oracle,SQL Server,Access万能数据库通用类
  • asp.net 数据库连接类代码(SQL)
  • asp.net 数据库的连接和datatable类
  • ASP.NET封装的SQL数据库访问类
  • ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法
  • asp.net连接查询SQL数据库并把结果显示在网页上(2种方法)
  • ASP.NET 6种常用数据库的连接方法
  • ASP.NET2.0 SQL Server数据库连接详解
  • Asp.net把图片存入数据库和读取图片的方法
  • ASP.NET数据库操作类实例

标签:开封 威海 广西 西双版纳 梧州 乌兰察布 随州 甘孜

巨人网络通讯声明:本文标题《ASP.NET对SQLServer的通用数据库访问类》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266