SQL访问类

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值