C#中一个操作数据库的类的封装,以前写的,被同学改过,很不完善

这是一个C#中用于操作数据库的类,包括连接字符串、数据集、数据库操作对象的初始化。提供了判断记录是否存在、获取最大值、创建数据集、更新数据库等方法。虽然已封装,但仍有改进空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

namespace DataCtrl
{
 /// <summary>
 /// Summary description for Class1.
 /// </summary>
 ///

 public class DBClass
 {
  private string connStr="Server='.';database=haihui2006;uid=sa;pwd=;";
  //-----------定义数据集----------------------------
  private DataSet GlobleDataSet=new DataSet();
  //-----------定义操作数据库 的对象--------------------------
  SqlConnection conn=new SqlConnection();
  SqlCommand cmd=new SqlCommand();

  SqlDataAdapter myDataAdapter=new SqlDataAdapter();
  SqlDataReader dr;
  //-----------------------以上是定义的变量-------------------------
  public DBClass()
  {//构造函数,在这里付值---------------------
   conn.ConnectionString=connStr;
   cmd.Connection=conn;
   cmd.CommandType=CommandType.Text;
  }

  //--------------创建数据表-这项功能作用不大,加到CreateDataSet直接创建数据集-然后用索引------
  /*
  public DataTable CreateDataTable(string SQLcmd,string TableName)
  {//创建数据表
   string connStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+DBName;
   
   DataSet myDataSet=new DataSet();
   OleDbConnection conn=new OleDbConnection(connStr);
   OleDbDataAdapter myAdapater=new OleDbDataAdapter(SQLcmd,conn);
   try
   {
    myAdapater.Fill(myDataSet,TableName);
    //myAdapater.Fill(dataSet,TableName);

   }
   catch(Exception ee)
   {
    throw(ee);
   }
   return myDataSet.Tables[TableName];
  }
  */
  //-------------------------------------------------------------------------------
  public bool IsRecorder(string SQLcmd)
  {//判断是否有这条记录--------------------------
   cmd.CommandText=SQLcmd;

   conn.Open();
 
   dr=cmd.ExecuteReader();
   bool hasRecorder=dr.Read();
   dr.Close();
   conn.Close();
   return hasRecorder;
  }
  //------------------------------------
  public int GetMax(string SQLcmd)
  {//获取记录的最大值--------------------------
   cmd.CommandText=SQLcmd;
   int MaxValue;
   string strMax="0";
   conn.Open();
 
   dr=cmd.ExecuteReader();
   if(dr.Read())
   {
     strMax=dr["Id"].ToString();//Convert.ToInt32(dr["Id"]);
    //bool hasRecorder=dr.Read();
    dr.Close();
    conn.Close();
   }
    MaxValue=Convert.ToInt32(strMax);
   //int MaxValue=0;
   return MaxValue;
  }

  public Object FindMaxInDB(string table,string column)
  {//找到列中最大值,返回最大值+1;
   int max = 0;
   string strMax = "0";
   cmd.CommandText = "select max(" + column + ") from  " + table;
   try
   {
    conn.Open();
    SqlDataReader myReader = cmd.ExecuteReader();
    myReader.Read();
    bool i = myReader.HasRows;
    if( i )
    {
     if(!myReader.IsDBNull(0))
      strMax = myReader.GetInt32(0).ToString();
    }
    max = int.Parse(strMax);
    myReader.Close();
    conn.Close();
   }
   catch(Exception ee)
   {
    //函数返回Object类型,装箱返回,然后拆箱。可传回异常结果或max
    if(conn.State.ToString() == "Open")
     conn.Close();
    return ee;
   }
   if(conn.State.ToString() == "Open")
    conn.Close();
   return max+1;
  }

  public void UpDateDataBase2(string SQLcmd)
  {//操作数据,只能单行操作--读,改,增,删------
   cmd.CommandText=SQLcmd;
   //---------------------------------
   try
   {
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();
   }
   catch(Exception ee)
   {
    throw ee;
   }
  }
  public Object UpDateDataBase(string SQLcmd)
  {//操作数据,只能单行操作--增,删,改------

   cmd.CommandText=SQLcmd;
   //---------------------------------
   try
   {
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();
   }
   catch(Exception ee)
   {
    //函数返回Object类型,装箱返回,然后拆箱。可传回异常结果或max
    if(conn.State.ToString() == "Open")
     conn.Close();
    return ee;
   }
   if(conn.State.ToString() == "Open")
    conn.Close();
   return true;
  }
  public void CreateDataSet(string SQLcmd,string TableName)
  {//创建数据集dataset,使用索引调用全局私有变量GlobleDataSet

   cmd.CommandText=SQLcmd;
   myDataAdapter.SelectCommand=cmd;
   try
   {
    GlobleDataSet.Clear();
    myDataAdapter.Fill(GlobleDataSet,TableName);

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

  }

  public Object FillDataSet(string SQLcmd,string TableName)
  {//创建数据集dataset,使用索引调用全局私有变量GlobleDataSet

   cmd.CommandText=SQLcmd;
   myDataAdapter.SelectCommand=cmd;
   try
   {
    myDataAdapter.Fill(GlobleDataSet,TableName);
   }
   catch(Exception ee)
   {
    //函数返回Object类型,装箱返回,然后拆箱。可传回异常结果或max
    return ee;
   }
   return true;
  }

  public void UpdateDataSet()
  {//更新数据库,把数据集中的多行数据写如数据库
  
  }
  
  public Object UpdateDataSet(string TableName)
  {//更新数据库,把数据集中的多行数据写如数据库

   SqlCommandBuilder objCommandBuilder = new SqlCommandBuilder(myDataAdapter);
   try
   {
    myDataAdapter.Update(GlobleDataSet,TableName);
   }
   catch(Exception e)
   {
    return e;
   }
   return true;
  }
  
  public DataSet dataSet
  {//---------------索引-把GlobleDataSet这个数据集返回-----------
   get
   {
    return GlobleDataSet;
   }
   set
   {
    GlobleDataSet=value;
   
   }
  }

  public string strConn
  {
   //在做借书的新借图书信息时,要在这个抽象出来的类里搞怕它和那边耦合度太大
   //所以传个连接过去在那边搞了
   get
   {
    return connStr;
   }
  }

 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值