乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      一個(gè)通用數(shù)據(jù)庫(kù)訪問(wèn)類(lèi)(C#,SqlClient)

       liuqg 2006-03-18

      使用ADO.NET時(shí),每次數(shù)據(jù)庫(kù)操作都要設(shè)置connection屬性、建立connection、使用command、事務(wù)處理等,比較繁瑣,有很多重復(fù)工作。能不能把這些繁瑣的、常用的操作再封裝一下,以更方便、安全地使用。下面這個(gè)類(lèi)就是一種嘗試:


      using System;
      using System.Data.SqlClient;
      using System.Text;
      using System.Data;
      using System.Collections;
      using System.Configuration;



        public class DBAccess
        {
         /// <summary>
         /// Declare the ole db required objects
         /// </summary>
        


         /// <summary>
         /// An ole db adapter to act as the bridge to the database
         /// </summary>
         private SqlDataAdapter dbDataAdapter;
         /// <summary>
         /// The connection to the database
         /// </summary>
         private SqlConnection dbConnection;
         /// <summary>
         /// The command for doing the inserts
         /// </summary>
         private SqlCommand dbInsertCommand;
         /// <summary>
         /// The command for doing the deletes
         /// </summary>
         private SqlCommand dbDeleteCommand;
         /// <summary>
         /// The command for doing the updates
         /// </summary>
         private SqlCommand dbUpdateCommand;
         /// <summary>
         /// The command for doing the Selects
         /// </summary>
         private SqlCommand dbSelectCommand;


         private SqlCommand dbSelectCommandofAdapter;


         /// <summary>
         /// The command for get dataset
         /// </summary>
         private SqlDataAdapter dataAdapterCommand;


         /// <summary>
         /// The data reader for the application
         /// </summary>
         public SqlDataReader dbDataReader;



         /// <summary>
         /// Declare an enum to allow internal tracking of commands
         /// </summary>
         enum COMMAND{ NONE, INSERT, UPDATE, DELETE, SELECT,DATASET };
       
         /// <summary>
         /// Internal member for tracking command progress
         /// </summary>
         private COMMAND command;


         /// <summary>
         /// String to hold error messages if a command fails
         /// </summary>
         private string error;


         /// <summary>
         /// Get a stored error message if ExecuteCommand fails
         /// </summary>
         public string ErrorMessage
         {
          get
          {
           return error;
          }
         }


         /// <summary>
         /// bool holder for is open
         /// </summary>
         private bool bOpen;


         /// <summary>
         /// Check to see if a data base is open
         /// </summary>
         public bool IsOpen
         {
          get
          {
           return bOpen;
          }
         }



         /// <summary>
         /// Declare a string object for the insert command
         /// </summary>
         public string InsertCommand 
         {
          get
          {
           return dbInsertCommand.CommandText;
          }
          set 
          {
           command = COMMAND.INSERT;
           dbInsertCommand.CommandText = value;
          }
         }


         /// <summary>
         /// Declare a string object for the delete command
         /// </summary>
         public string DeleteCommand
         {
          get
          {
           return dbDeleteCommand.CommandText;
          }
          set
          {
           command = COMMAND.DELETE;
           dbDeleteCommand.CommandText = value;
          }
         }


         /// <summary>
         /// Declare a string object for the update command
         /// </summary>
         public string UpdateCommand
         {
          get
          {
           return dbUpdateCommand.CommandText;
          }
          set
          {
           command = COMMAND.UPDATE;
           dbUpdateCommand.CommandText = value;
          }
         }


         /// <summary>
         /// Declare a string object for the select command
         /// </summary>
         public string SelectCommand
         {
          get
          {
           return dbSelectCommand.CommandText;
          }
          set
          {
           command = COMMAND.SELECT;
           dbSelectCommand.CommandText = value;
          }
         }


         public string SelectDataSetCommand
         {
          get
          {
           return dataAdapterCommand.SelectCommand.CommandText;
          }
          set
          {
           command = COMMAND.DATASET;
           dataAdapterCommand.SelectCommand.CommandText = value;
          }
         }


         /// <summary>
         /// Get the reader from the class
         /// </summary>
         public SqlDataReader GetReader
         {
          get
          {
           switch( command )
           {
            case COMMAND.NONE: return null;
            case COMMAND.DELETE: return DeleteReader;
            case COMMAND.INSERT: return InsertReader;
            case COMMAND.SELECT: return SelectReader;
            case COMMAND.UPDATE: return UpdateReader;
            default: return null;
           }
          }
         }


         public DataSet GetDataSet
         {
          get
          {
           switch( command )
           {
            case COMMAND.DATASET: return SelectDataSet();
            default: return null;
           }
          }
         }


         public DataSet SelectDataSet()
         {
          try
          {
           dataAdapterCommand.SelectCommand.Connection = dbConnection;
           DataSet dataset = new DataSet();
           dataAdapterCommand.Fill(dataset);
           return dataset;
          }
          catch (Exception exp)
          {
           error = exp.Message;
           return null;
          }


         }


         /// <summary>
         /// Execute the command that has been set up previously
         /// </summary>
         /// <returns>A boolean value indicating true or false</returns>
         public bool ExecuteCommand()
         {
          bool bReturn = false;
          if( command == COMMAND.NONE )
          {
           return bReturn;
          }
          else if( command == COMMAND.SELECT )
          {
           /// select only returns true as the get reader function will
           /// execute the command


           try
           {
            if( dbDataReader != null )
            {
             dbDataReader.Close();
             dbDataReader = null;
            }


            bReturn = true;
            ///   return bReturn;
           }
           catch( SqlException exp )
           {
            error = "dbException thrown when trying to Select, error given = " + exp.Message + " check the sql";
            return bReturn = false;
           }


          }
          else if( command == COMMAND.DATASET )
          {
           return bReturn;     
          }
          else
          {
           int nAffected = -1;


           if( dbDataReader != null )
           {
            dbDataReader.Close();
            dbDataReader = null;
           }


           /// get the transaction object from the connection
           SqlTransaction trans = dbConnection.BeginTransaction();


           try
           {
            /// create a nested transaction on the connection transaction
            switch( command )
            {
             case COMMAND.DELETE: dbDeleteCommand.Transaction = trans; break;
             case COMMAND.INSERT: dbInsertCommand.Transaction = trans; break;
             case COMMAND.UPDATE: dbUpdateCommand.Transaction = trans; break;
            }



            /// execute the command
            switch( command )
            {
             case COMMAND.DELETE: nAffected = dbDeleteCommand.ExecuteNonQuery(); break;
             case COMMAND.INSERT: nAffected = dbInsertCommand.ExecuteNonQuery(); break;
             case COMMAND.UPDATE: nAffected = dbUpdateCommand.ExecuteNonQuery(); break;
            }


           }
           catch( InvalidOperationException ioexp )
           {
            StringBuilder buildError = new StringBuilder();
            buildError.Append( "InvalidOperationException thrown when trying to " );


            switch( command )
            {
             case COMMAND.DELETE: buildError.Append( "Delete" ); break;
             case COMMAND.INSERT: buildError.Append( "Insert" ); break;
             case COMMAND.UPDATE: buildError.Append( "Update" ); break;
            }


            buildError.Append( ", error given = " + ioexp.Message + " check the sql" );


            error = buildError.ToString();


            return bReturn = false;
           }
           catch( SqlException dbexp )
           {
            StringBuilder buildError = new StringBuilder();
            buildError.Append( "InvalidOperationException thrown when trying to " );


            switch( command )
            {
             case COMMAND.DELETE: buildError.Append( "Delete" ); break;
             case COMMAND.INSERT: buildError.Append( "Insert" ); break;
             case COMMAND.UPDATE: buildError.Append( "Update" ); break;
            }


            buildError.Append( ", error given = " + dbexp.Message + " check the sql" );


            error = buildError.ToString();


            return bReturn = false;
           }
           finally
           {
            /// commit the command
            if( nAffected == 1 )
            {
             switch( command )
             {
              case COMMAND.DELETE: dbDeleteCommand.Transaction.Commit(); break;
              case COMMAND.INSERT: dbInsertCommand.Transaction.Commit(); break;
              case COMMAND.UPDATE: dbUpdateCommand.Transaction.Commit(); break;
             }


             //trans.Commit();


             bReturn = true;
            }
            else /// if something went wrong rollback
            {
             switch( command )
             {
              case COMMAND.DELETE: dbDeleteCommand.Transaction.Rollback(); break;
              case COMMAND.INSERT: dbInsertCommand.Transaction.Rollback(); break;
              case COMMAND.UPDATE: dbUpdateCommand.Transaction.Rollback(); break;
             }
            
             //trans.Rollback();


             bReturn = false;
            }
           }
          }


          return bReturn;
         }



         #region select functions


         /// <summary>
         /// Get the Select reader from the select command
         /// </summary>
         private SqlDataReader SelectReader
         {
          get
          {
           if( dbDataReader != null )
           {
            if( dbDataReader.IsClosed == false )
            {
             dbDataReader.Close();
             dbDataReader = null;
            }
           }


           dbDataReader = dbSelectCommand.ExecuteReader();
           return dbDataReader;
          }
         }


         /// <summary>
         /// Get the Update reader from the update command
         /// </summary>
         private SqlDataReader UpdateReader
         {
          get
          {
           if( dbDataReader.IsClosed == false )
            dbDataReader.Close();


           dbDataReader = dbSelectCommand.ExecuteReader();
           return dbDataReader;
          }
         }


         /// <summary>
         /// Get the Insert Reader from the Insert Command
         /// </summary>
         private SqlDataReader InsertReader
         {
          get
          {
           if( dbDataReader.IsClosed == false )
            dbDataReader.Close();


           dbDataReader = dbSelectCommand.ExecuteReader();
           return dbDataReader;
          }
         }


         /// <summary>
         /// Get the Delete Reader from the Delete Command
         /// </summary>
         private SqlDataReader DeleteReader
         {
          get
          {
           if( dbDataReader != null )
           {
            if( dbDataReader.IsClosed == false )
            {
             dbDataReader.Close();
             dbDataReader = null;
            }
           }


           dbDataReader = dbSelectCommand.ExecuteReader();
           return dbDataReader;
          }
         }


         #endregion



         /// <summary>
         /// Standard Constructor
         /// </summary>
         public DBAccess()
         {
          /// NOTE That we are not setting the commands up the way the wizard would
          /// but building them more generically


          // create the command variables
          dbDataAdapter = new SqlDataAdapter();
          dbConnection = new SqlConnection();
          dbSelectCommand = new SqlCommand();
          dbDeleteCommand = new SqlCommand();
          dbUpdateCommand = new SqlCommand();
          dbInsertCommand = new SqlCommand();


          /// set up the adapter
          dbDataAdapter.DeleteCommand = dbDeleteCommand;
          dbDataAdapter.InsertCommand = dbInsertCommand;
          dbDataAdapter.SelectCommand = dbSelectCom

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多