zoukankan      html  css  js  c++  java
  • asp.net类中公共类DBHelp

    在asp.net中使用公共类可以节省很多代码,DBHelp这个类我们经常用,现在来简单介绍一下:

    连接字符串从配置文件中读取
           private readonly static string CONNSTRING = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;

           执行增删改操作方法
           public static void GetExecuteNonQuery(string sqlstr,params SqlParameter[] paras)
           {
             using(SqlConnection conn=new SqlConnection(CONNSTRING))
             {

                try{
                 SqlCommand cmd = new SqlCommand(sqlstr,conn);
                 cmd.Parameters.AddRange(paras);
                 conn.Open();
                 cmd.ExecuteNonQuery();

                 }catch(OleDbException e){

                     throw new Exception(e.Message);
                 }
             }
          
           }

           执行检索查询方法
           public static SqlDataReader GetReader(string sqlstr, params  SqlParameter[] paras)
           {

            try{
               SqlConnection conn = new SqlConnection(CONNSTRING);
               SqlCommand cmd = new SqlCommand(sqlstr, conn);
               cmd.Parameters.AddRange(paras);
               conn.Open();
               return cmd.ExecuteReader(CommandBehavior.CloseConnection);

              }catch(OleDbException e){

                     throw new Exception(e.Message);
                 }
           }

          注:CommandBehavior.CloseConnection表示关闭SqlDataReader的同时把连接也关掉

           

         返回第一行第一列的方法 
           public static object GetExecuteScalar(string sqlstr, params  SqlParameter[] paras)
           {
               using (SqlConnection conn = new SqlConnection(CONNSTRING))
               {  

                   try

                   {
                   SqlCommand cmd = new SqlCommand(sqlstr, conn);
                   cmd.Parameters.AddRange(paras);
                   conn.Open();
                   return cmd.ExecuteScalar();

               } catch(OleDbException e){

                     throw new Exception(e.Message);
                 }
               }
           }

         
           返回DataTable对象
           public static DataTable GetDataSet(string sql, SqlParameter[] paramters)
           {
               using (SqlConnection conn = new SqlConnection(CONNSTRING))
               {

                   try{
                   DataSet ds = new DataSet();
                   SqlCommand command = new SqlCommand(sql, conn);
                   command.Parameters.AddRange(paramters);
                   SqlDataAdapter adapter = new SqlDataAdapter(command);
                   adapter.Fill(ds);
                   return ds.Tables[0];

                  }catch(OleDbException e){

                     throw new Exception(e.Message);
                 }
               }
           }

     返回DataSet

     public static DataSet Query(string sqlstr, params OleDbParameter[] paras)
          {
             using(OleDbConnection conn=new OleDbConnection(CONNSTR))
             {
                 try
                 {
                     DataSet ds = new DataSet();
                     OleDbCommand cmd = new OleDbCommand(sqlstr, conn);
                     cmd.Parameters.AddRange(paras);
                     OleDbDataAdapter da = new OleDbDataAdapter();
                     da.SelectCommand = cmd;
                     da.Fill(ds, "ds");
                 
                     return ds;
                 }
                 catch (OleDbException e)
                 {

                     throw new Exception(e.Message);
                 }
             }
          }

    public static DataSet Query(string sqlstr)
          {
             using(OleDbConnection conn=new OleDbConnection(CONNSTR))
             {
                 try
                 {
                     DataSet ds = new DataSet();
                     OleDbCommand cmd = new OleDbCommand(sqlstr, conn);
                   
                     OleDbDataAdapter da = new OleDbDataAdapter();

                     da.Fill(ds, "ds");
                     return ds;
                 }
                 catch (OleDbException e)
                 {

                     throw new Exception(e.Message);
                 }
             }
          }
    执行多条SQL语句,实现数据库事务

      public static void ExecuteSqlTran(ArrayList SQLStringList)
          {

              int fig=0;//用来判断是否执行成功
              using (OleDbConnection conn = new OleDbConnection(CONNSTR))
              {
                  conn.Open();
                  OleDbCommand cmd = new OleDbCommand();
                  cmd.Connection = conn;
                 
                  OleDbTransaction tx = conn.BeginTransaction();
                  cmd.Transaction = tx;
                  try
                  {
                      for (int n = 0; n < SQLStringList.Count; n++)
                      {
                          string strsql = SQLStringList[n].ToString();
                          if (strsql.Trim().Length > 1)
                          {
                              cmd.CommandText = strsql;
                     

                             if(cmd.ExecuteNonQuery()>0)

                             {

                                 fig++;

                              }
                          }
                      }
                      tx.Commit();
                  }
                  catch (System.Data.OleDb.OleDbException E)
                  {

                      fig=-1;
                      tx.Rollback();
                      throw new Exception(E.Message);

                  }
              }
          }

        其中SqlParameter[] paramters在返回范性集合的时候可以写参数或者没有参数也可以不写,但是返回dataTable或者DataSet的时候要写!

       获得新增数据的id(access)

        public void ExecuteSql(string cmdText, IDataParameter[] cmdParameters, out DataTable dt)
            {
                try
                {
                    this._DbCommand.CommandText = cmdText;
                    foreach (IDataParameter parameter in cmdParameters)
                    {
                        this._DbCommand.Parameters.Add(parameter);
                    }
                    this._DbDataAdapter.SelectCommand = this._DbCommand;
                    DataSet dataSet = new DataSet();
                    this._DbDataAdapter.Fill(dataSet);
                    dt = dataSet.Tables[0];
                }
                catch (Exception exception)
                {
                    this.CloseConnection();
                    throw new Exception(exception.Message);
                }
            }

    多思考,多创新,才是正道!
  • 相关阅读:
    win10笔记本实现双屏显示的自如切换
    word-如何将文字设置为插入超链接
    opencv-python教程学习系列13-图像平滑
    第12课 经典问题解析一
    第11课 新型的类型转换
    第10课 C++中的新成员
    第9课 函数重载分析(下)
    第8课 函数重载分析(上)
    第7课 函数参数的扩展
    第6课 内联函数分析
  • 原文地址:https://www.cnblogs.com/shuang121/p/1966346.html
Copyright © 2011-2022 走看看