SQLHelper是不是VS2010自带的

发布网友

我来回答

5个回答

懂视网

参照别人的方法,顺便再次复习下ADO.NET的相关知识。为自己的类库做准备。

namespace Common.SqlHelper
{
 /// <summary>
 /// ADO.NET-------底层的数据操作
 /// </summary>
 public class SqlHelper
 {
 /// <summary>
 /// 通过构造函数来实例化连接字符串
 /// </summary>
 /// <param name="connectionString"></param>
 public SqlHelper(string connectionString)
 {
  this.connectionString = connectionString;
 }
 private string connectionString;
 /// <summary>
 /// 设置DB访问字符串
 /// </summary>
 public string ConnectionSrting
 {
  set { connectionString = value; }
 }

 #region 执行一个查询,返回查询的结果集+ExecuteDataTable(string sql, CommandType commandtype, SqlParameter[] parameters)
 public DataTable ExecuteDataTable(string sql)
 {
  return ExecuteDataTable(sql, CommandType.Text, null);
 }
 public DataTable ExecuteDataTable(string sql, CommandType commandType)
 {
  return ExecuteDataTable(sql, commandType, null);
 }

 /// <summary>
 /// 执行一个查询,返回查询的结果集。
 /// </summary>
 /// <param name="sql"></param>
 /// <param name="commandtype"></param>
 /// <param name="parameters"></param>
 /// <returns></returns>
 public DataTable ExecuteDataTable(string sql, CommandType commandtype, SqlParameter[] parameters)
 {
  DataTable data = new DataTable(); //实例化datatable,用于装载查询的结果集
  using (SqlConnection conn = new SqlConnection(connectionString))
  {
  using (SqlCommand cmd = new SqlCommand(sql, conn))
  {
   cmd.CommandType = commandtype;
   if (parameters != null)
   {
   foreach (SqlParameter parameter in parameters)
   {
    cmd.Parameters.Add(parameter); //将参数添加到sql语句中。
   }
   }
   //申明sqldataadapter,通过cmd来实例化它,这个是数据设备器,可以直接往datatable,dataset中写入。
   SqlDataAdapter adapter = new SqlDataAdapter(cmd);
   adapter.Fill(data); //利用Fill来填充。
  }
  }
  return data;
 }
 #endregion

 #region 返回一个SqlDataReader对象。

 public SqlDataReader ExecuteReader(string sql)
 {
  return ExecuteReader(sql, CommandType.Text, null);
 }
 public SqlDataReader ExecuteReader(string sql, CommandType commandType)
 {
  return ExecuteReader(sql, commandType, null);
 }

 /// <summary>
 /// 返回一个SqlDataReader,从 SQL Server 数据库读取行的只进流的方式
 /// </summary>
 /// <returns></returns>
 public SqlDataReader ExecuteReader(string sql, CommandType commandType, SqlParameter[] parameters)
 {
  SqlConnection conn = new SqlConnection(connectionString);
  SqlCommand cmd = new SqlCommand(sql, conn);
  if (parameters != null)
  {
  foreach (SqlParameter parameter in parameters)
  {
   cmd.Parameters.Add(parameter);
  }
  }
  conn.Open();
  //CommandBehavior.CloseConnection+关闭reader对象关闭与其连接的Connection对象。
  return cmd.ExecuteReader(CommandBehavior.CloseConnection);
 }
 #endregion

 #region 执行一个查询,返回结果集的首行首列。忽略其他行,其他列
 /// <summary>
 /// 只执行sql语句
 /// </summary>
 /// <param name="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)
 {
  SqlConnection conn = new SqlConnection(connectionString);
  SqlCommand cmd = new SqlCommand(sql, conn);
  cmd.CommandType = commandType;
  if (parameters != null)
  {
  foreach (SqlParameter parameter in parameters)
  {
   cmd.Parameters.Add(parameter);
  }
  }
  conn.Open();
  //cmd.ExecuteScalar()+执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略其他列或行。
  object result = cmd.ExecuteScalar();
  conn.Close();
  return result;
 }

 #endregion

 #region 进行CRUD操作

 public int ExecuteNonQuery(string sql)
 {
  return ExecuteNonQuery(sql,CommandType.Text,null);
 }
 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)
 {
  SqlConnection conn=new SqlConnection(connectionString);
  SqlCommand cmd=new SqlCommand(sql,conn);
  cmd.CommandType = commandType;
  if (parameters!=null)
  {
  foreach (SqlParameter parameter in parameters)
  {
   cmd.Parameters.Add(cmd);
  }
  }
  conn.Open();
  int count = cmd.ExecuteNonQuery();
  conn.Close();
  return count;
 }

 #endregion

 #region 返回当前连接的数据库中所有用户创建的数据库
 /// <summary>
 /// 返回当前连接的数据库中所有用户创建的数据库
 /// </summary> 
 /// <param name="tableName">表名</param>
 /// <returns></returns>
 public DataTable GetTable(string tableName)
 {
  DataTable table = new DataTable();
  using (SqlConnection conn = new SqlConnection(connectionString))
  {
  conn.Open();
  table = conn.GetSchema(tableName);
  }
  return table;
 } 
 #endregion
 }
}

ADO.NET封装的SqlHelper

标签:

热心网友

不是自带的,它是把常用的ado.net操作sqlserver的操作,比如增删查改等封装了,
假如你想手工写一个语句,通常如下
sqlconnection=new ...(connectionstring)
sqlcommand=new...("Delete * from ...",sqlconnection)
sqlcommand.executenonquery

而我们会发现在一个项目里面,这种类似的代码会写无数次,
程序员一般都是偷懒的,所以就会写一个函数来封装一下。
比如void executenonquery(stringSql)
{}
一个语句就搞定了。
而这个封装的工作,据我所知,目前就是
SQLHelper做得最好。

热心网友

不是自带的,微软有一个自己的SQLHeper追问这个是干啥用的,搞个这个有何好处

追答微软自己的SQLHelper就是一个帮助类啊!和我们平常自己写的一样的功能啊

热心网友

这不是

热心网友

不是

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com