SQL访问类

    技术2022-05-11  56

    using System;using System.Data;using System.Data.SqlClient;

    namespace llin.DataOperate.Sql{ /// <summary> /// DbOperate 的摘要说明。 /// </summary> public class DbOperate {  private System.Data.SqlClient.SqlConnection SqlConnection=null;   private System.Data.SqlClient.SqlTransaction SqlTransaction=null;  public System.Data.SqlClient.SqlCommand paramCommand=null;//用于带参数的SqlCommand类对象  /// <summary>  /// 与数据库连接的当前状态   /// </summary>  public System.Data.ConnectionState State  {   get   {    return SqlConnection.State;   }  }

      public DbOperate()  {   //   // TODO: 在此处添加构造函数逻辑   //   SqlConnection=new SqlConnection();  }

      public DbOperate(string strConn)  {   SqlConnection=new SqlConnection(strConn);   paramCommand=SqlConnection.CreateCommand();  }          ///<summary>    ///打开与数据库中的连接  ///</summary>  public void Open()  {   try   {    if(this.State==System.Data.ConnectionState.Closed)    {     this.SqlConnection.Open();    }   }   catch(Exception)   {}  }

      ///<summary>  ///关闭与数据库的连接  ///</summary>  public void Close()  {   try   {    if(this.State!=System.Data.ConnectionState.Closed)    {     this.SqlConnection.Close();    }   }   catch(Exception)   {}  }

      /// <summary>  /// 更新数据集  /// </summary>  /// <param name="dataSet"></param>  /// <returns></returns>  public bool UpdateDataSet(DataSet dataSet,string selectString)  {   try   {        SqlDataAdapter da=new SqlDataAdapter(selectString,this.SqlConnection);        SqlCommandBuilder builder=new SqlCommandBuilder(da);        if(this.SqlTransaction!=null)    {     da.SelectCommand.Transaction=this.SqlTransaction;     da.InsertCommand.Transaction=this.SqlTransaction;     da.UpdateCommand.Transaction=this.SqlTransaction;     da.DeleteCommand.Transaction=this.SqlTransaction;    }    if(dataSet.HasChanges(DataRowState.Added))    {     DataSet ds=dataSet.GetChanges(DataRowState.Added);     da.Update(ds);    }        if(dataSet.HasChanges(DataRowState.Modified))    {     DataSet ds=dataSet.GetChanges(DataRowState.Modified);     da.Update(ds);    }

        if(dataSet.HasChanges(DataRowState.Deleted))    {     DataSet ds=dataSet.GetChanges(DataRowState.Deleted);     da.Update(ds);    }         return true;   }   catch(Exception ex)   {         throw ex;   }  }

      ///<summary>  ///开始事务  ///</summary>  public void BeginTrans()  {   try   {    this.Open();    this.SqlTransaction=this.SqlConnection.BeginTransaction();   }   catch(Exception)   {}  }

      ///<summary>  ///执行事务  ///</summary>  public void CommitTrans()  {   try   {    this.SqlTransaction.Commit();    this.Close();   }   catch(Exception)   {}  }

      ///<summary>  ///回滚事务  ///</summary>  public void RollBackTrans()  {   try   {    this.SqlTransaction.Rollback();    this.Close();   }   catch(Exception)   {}  }

      ///<summary>  ///清理所有正在使用的资源  ///</summary>  public void Dispose()  {   this.Close();   GC.SuppressFinalize(true);  }

      ///<summary>  ///返回满足特定条件的记录数  ///</summary>  ///<param name=sqlString>select count(*) from table where...</param>  ///<returns></returns>  public int GetRecordCount(string sqlString)  {   int number=-1;   SqlCommand command=new SqlCommand(sqlString,this.SqlConnection);   command.Transaction=this.SqlTransaction;   try   {    this.Open();    number=Convert.ToInt32(command.ExecuteScalar().ToString());       }   catch(Exception)   {}   return number;  }

      ///<summary>  ///增强数据适配器  ///</summary>  public void BuildAdapter(SqlDataAdapter adapter)  {   SqlCommandBuilder builder=new SqlCommandBuilder(adapter);   adapter.DeleteCommand=builder.GetDeleteCommand();   adapter.InsertCommand=builder.GetInsertCommand();   adapter.UpdateCommand=builder.GetUpdateCommand();  }

      ///<summary>  ///数据适配器在事务中提交更新  ///</summary>  public void UpdateAdapter(string sqlString)  {   DataTable tbl=new DataTable();   SqlDataAdapter da=new SqlDataAdapter(sqlString,this.SqlConnection);

       this.Open();   da.Fill(tbl);   SqlTransaction txn=this.SqlConnection.BeginTransaction();   try   {    da.UpdateCommand.Transaction=txn;    da.InsertCommand.Transaction=txn;    da.DeleteCommand.Transaction=txn;

        //提交更改    da.Update(tbl);

        //接受更改    txn.Commit();    this.Close();   }   catch(Exception)   {    txn.Rollback();    this.Close();   }  }

      ///<summary>  ///向数据库中提交查询,返回一个dataSet  ///</summary>  public DataSet ExecuteSelect(string sqlString)  {   DataSet dataSet=new DataSet();   SqlDataAdapter da=new SqlDataAdapter(sqlString,this.SqlConnection);   da.SelectCommand.Transaction=this.SqlTransaction;      da.Fill(dataSet);      return dataSet;     }

      public DataSet ExecuteSelect(string sqlString,string tableName)  {   DataSet dataSet=new DataSet();   SqlDataAdapter da=new SqlDataAdapter(sqlString,this.SqlConnection);   da.SelectCommand.Transaction=this.SqlTransaction;      da.Fill(dataSet,tableName);      return dataSet;   }

     

      ///<summary>  ///向数据库中提交更新  ///</summary>  ///<param name="sqlString">插入、修改、删除的SQL语句</param>  ///<returns>成功时返回0,失败时返回-1</returns>  public int ExecuteUpdate(string sqlString)  {   try   {    this.Open();    SqlCommand command=this.SqlConnection.CreateCommand();    command.CommandText=sqlString;    if(this.SqlTransaction!=null)    {     command.Transaction=this.SqlTransaction;    }    int lines=command.ExecuteNonQuery();    return lines;   }   catch(Exception e)   {        throw e;          }  }  /// <summary>  /// 通过一个SELECT语句,判断返回的记录集是否为空  /// </summary>  /// <param name="selectString"></param>  /// <returns>如果有记录返回true,否则返回false</returns>  public bool HasRecord(string selectString)  {   try   {    this.Open();    SqlCommand command=this.SqlConnection.CreateCommand();    command.CommandText=selectString;    command.Transaction=this.SqlTransaction;    SqlDataReader reader=command.ExecuteReader();    if(reader.Read())    {     reader.Close();          return true;    }    else    {     reader.Close();         return false;    }

       }   catch(Exception e)   {        throw e;   }  }

      /// <summary>  /// 通过一个选择单列的SQL语句,返回所取的值  /// </summary>  /// <param name="?"></param>  /// <returns></returns>  public object getValue(string selectString)  {   try   {    this.Open();    SqlCommand command=this.SqlConnection.CreateCommand();    command.CommandText=selectString;    command.Transaction=this.SqlTransaction;    object obj=command.ExecuteScalar();    return obj;   }   catch(Exception e)   {    throw e;   }  }

      /// <summary>  /// 用于带参数的数据库更新语句  /// </summary>  /// <param name="sqlString"></param>  /// <returns></returns>  public int ParamUpdate(string sqlString)  {   try   {    this.Open();    if(this.SqlTransaction!=null)    {     this.paramCommand.Transaction=this.SqlTransaction;    }    int lines=this.paramCommand.ExecuteNonQuery();    return lines;   }   catch(Exception e)   {    throw e;   }  } }} 


    最新回复(0)