MySqlHelper c#访问MySql的工具类

系统 1437 0

最近一段时间一直在总结过去一年中的经验教训,突然发现还没毕业那会做的项目:一平台,语言是c#,数据库用MYSQL,所以需要写一个类似于SQLHelper的类,虽然不再使用了,拿出来晒晒,说不定哪天会有人需要,也可以参考下。

View Code
        
            1
        
        
          /*
        
        
          ----------------------------------------------------------------


        
        
            2
        
        
          // File Name:MYSQLHelper.cs


        
        
            3
        
        
          // File Description:


        
        
            4
        
        
           * DataBase Deal Layer


        
        
            5
        
        
           * 


        
        
            6
        
        
          // Create Mark:


        
        
            7
        
        
           * Create Date:  2011-04-14


        
        
            8
        
        
           * Create By: Mike.Jiang


        
        
            9
        
        
          // Modify Mark:


        
        
           10
        
        
           * Modify Date


        
        
           11
        
        
           * Modify By


        
        
           12
        
        
          //----------------------------------------------------------------
        
        
          */
        
        
           13
        
        
          using
        
        
           System;


        
        
           14
        
        
          using
        
        
           System.Collections.Generic;


        
        
           15
        
        
          using
        
        
           System.Text;


        
        
           16
        
        
          using
        
        
           System.Data;


        
        
           17
        
        
          using
        
        
           System.Collections;


        
        
           18
        
        
          using
        
        
           MySql.Data.MySqlClient;


        
        
           19
        
        
          using
        
        
           System.Configuration;


        
        
           20
        
        
          using
        
        
           System.IO;


        
        
           21
        
        
           22
        
        
           23
        
        
          namespace
        
        
           PLA.DBUtility


        
        
           24
        
        
          {


        
        
           25
        
        
          ///
        
        
          <summary>
        
        
           26
        
        
          ///
        
        
           when use mysql database application this class 


        
        
           27
        
        
          ///
        
        
           Generic database access code 


        
        
           28
        
        
          ///
        
        
           this class that is a abstract,which does not allow instantiation, the application can directly call it


        
        
           29
        
        
          ///
        
        
          </summary>
        
        
           30
        
        
          public
        
        
          abstract
        
        
          class
        
        
           MYSQLHelper


        
        
           31
        
        
              {


        
        
           32
        
        
          //
        
        
          Get the database connectionstring, which are static variables and readonly, all project documents can be used directly, but can not modify it 


        
        
           33
        
        
          //
        
        
          the database connectionString 


        
        
           34
        
        
          //
        
        
          public static readonly string connectionStringManager = ConfigurationManager.ConnectionStrings["MYSQLConnectionString"].ConnectionString;
        
        
           35
        
        
          public
        
        
          static
        
        
          string
        
        
           ConnectionStringManager {


        
        
           36
        
        
          get
        
        {
        
          return
        
        
           connectionStringManager; }


        
        
           37
        
        
                  }


        
        
           38
        
        
           39
        
        
           40
        
        
           41
        
        
          //
        
        
          This connectionString for the local test
        
        
           42
        
        
          public
        
        
          static
        
        
          readonly
        
        
          string
        
         connectionStringManager = ConfigurationManager.ConnectionStrings[
        
          "
        
        
          LocalMYSQLConnectionString
        
        
          "
        
        
          ].ConnectionString;


        
        
           43
        
        
           44
        
        
          //
        
        
          hashtable to store the parameter information, the hash table can store any type of argument 


        
        
           45
        
        
          //
        
        
          Here the hashtable is static types of static variables, since it is static, that is a definition of global use.


        
        
           46
        
        
          //
        
        
          All parameters are using this hash table, how to ensure that others in the change does not affect their time to read it


        
        
           47
        
        
          //
        
        
          Before ,the method can use the lock method to lock the table, does not allow others to modify.when it has readed then  unlocked table.


        
        
           48
        
        
          //
        
        
          Now .NET provides a HashTable's Synchronized methods to achieve the same function, no need to manually lock, completed directly by the system framework 
        
        
           49
        
        
          private
        
        
          static
        
         Hashtable parmCache = Hashtable.Synchronized(
        
          new
        
        
           Hashtable());


        
        
           50
        
        
           51
        
        
          ///
        
        
          <summary>
        
        
           52
        
        
          ///
        
        
           Execute a SqlCommand command that does not return value, by appointed and specified connectionstring 


        
        
           53
        
        
          ///
        
        
           The parameter list using parameters that in array forms


        
        
           54
        
        
          ///
        
        
          </summary>
        
        
           55
        
        
          ///
        
        
          <remarks>
        
        
           56
        
        
          ///
        
        
           Usage example: 


        
        
           57
        
        
          ///
        
        
           int result = ExecuteNonQuery(connString, CommandType.StoredProcedure,


        
        
           58
        
        
          ///
        
        
           "PublishOrders", new MySqlParameter("@prodid", 24));


        
        
           59
        
        
          ///
        
        
          </remarks>
        
        
           60
        
        
          ///
        
        
          <param name="connectionString">
        
        
          a valid database connectionstring
        
        
          </param>
        
        
           61
        
        
          ///
        
        
          <param name="cmdType">
        
        
          MySqlCommand command type (stored procedures, T-SQL statement, and so on.) 
        
        
          </param>
        
        
           62
        
        
          ///
        
        
          <param name="cmdText">
        
        
          stored procedure name or T-SQL statement
        
        
          </param>
        
        
           63
        
        
          ///
        
        
          <param name="commandParameters">
        
        
          MySqlCommand to provide an array of parameters used in the list
        
        
          </param>
        
        
           64
        
        
          ///
        
        
          <returns>
        
        
          Returns a value that means number of rows affected/returns>
        
        
           65
        
        
          public
        
        
          static
        
        
          int
        
         ExecuteNonQuery(
        
          string
        
         connectionString, CommandType cmdType, 
        
          string
        
         cmdText, 
        
          params
        
        
           MySqlParameter[] commandParameters)


        
        
           66
        
        
                  {


        
        
           67
        
                     MySqlCommand cmd = 
        
          new
        
        
           MySqlCommand();


        
        
           68
        
        
           69
        
        
          using
        
         (MySqlConnection conn = 
        
          new
        
        
           MySqlConnection(connectionString))


        
        
           70
        
        
                      {


        
        
           71
        
                         PrepareCommand(cmd, conn, 
        
          null
        
        
          , cmdType, cmdText, commandParameters);


        
        
           72
        
        
          int
        
         val =
        
           cmd.ExecuteNonQuery();


        
        
           73
        
        
                          cmd.Parameters.Clear();


        
        
           74
        
        
          return
        
        
           val;


        
        
           75
        
        
                      }


        
        
           76
        
        
                  }


        
        
           77
        
        
           78
        
        
          ///
        
        
          <summary>
        
        
           79
        
        
          ///
        
        
           Execute a SqlCommand command that does not return value, by appointed and specified connectionstring 


        
        
           80
        
        
          ///
        
        
           The parameter list using parameters that in array forms


        
        
           81
        
        
          ///
        
        
          </summary>
        
        
           82
        
        
          ///
        
        
          <remarks>
        
        
           83
        
        
          ///
        
        
           Usage example: 


        
        
           84
        
        
          ///
        
        
           int result = ExecuteNonQuery(connString, CommandType.StoredProcedure,


        
        
           85
        
        
          ///
        
        
           "PublishOrders", new MySqlParameter("@prodid", 24));


        
        
           86
        
        
          ///
        
        
          </remarks>
        
        
           87
        
        
          ///
        
        
          <param name="cmdType">
        
        
          MySqlCommand command type (stored procedures, T-SQL statement, and so on.) 
        
        
          </param>
        
        
           88
        
        
          ///
        
        
          <param name="connectionString">
        
        
          a valid database connectionstring
        
        
          </param>
        
        
           89
        
        
          ///
        
        
          <param name="cmdText">
        
        
          stored procedure name or T-SQL statement
        
        
          </param>
        
        
           90
        
        
          ///
        
        
          <param name="commandParameters">
        
        
          MySqlCommand to provide an array of parameters used in the list
        
        
          </param>
        
        
           91
        
        
          ///
        
        
          <returns>
        
        
          Returns true or false 
        
        
          </returns>
        
        
           92
        
        
          public
        
        
          static
        
        
          bool
        
         ExecuteNonQuery(CommandType cmdType, 
        
          string
        
         connectionString, 
        
          string
        
         cmdText, 
        
          params
        
        
           MySqlParameter[] commandParameters)


        
        
           93
        
        
                  {


        
        
           94
        
                     MySqlCommand cmd = 
        
          new
        
        
           MySqlCommand();


        
        
           95
        
        
           96
        
        
          using
        
         (MySqlConnection conn = 
        
          new
        
        
           MySqlConnection(connectionString))


        
        
           97
        
        
                      {


        
        
           98
        
                         PrepareCommand(cmd, conn, 
        
          null
        
        
          , cmdType, cmdText, commandParameters);


        
        
           99
        
        
          try
        
        
          100
        
        
                          {


        
        
          101
        
        
          int
        
         val =
        
           cmd.ExecuteNonQuery();


        
        
          102
        
        
          return
        
        
          true
        
        
          ;


        
        
          103
        
        
                          }


        
        
          104
        
        
          catch
        
        
          105
        
        
                          {


        
        
          106
        
        
          return
        
        
          false
        
        
          ;


        
        
          107
        
        
                          }


        
        
          108
        
        
          finally
        
        
          109
        
        
                          {


        
        
          110
        
        
                              cmd.Parameters.Clear();


        
        
          111
        
        
                          }


        
        
          112
        
        
                      }


        
        
          113
        
        
                  }


        
        
          114
        
        
          ///
        
        
          <summary>
        
        
          115
        
        
          ///
        
        
           Execute a SqlCommand command that does not return value, by appointed and specified connectionstring 


        
        
          116
        
        
          ///
        
        
           Array of form parameters using the parameter list 


        
        
          117
        
        
          ///
        
        
          </summary>
        
        
          118
        
        
          ///
        
        
          <param name="conn">
        
        
          connection
        
        
          </param>
        
        
          119
        
        
          ///
        
        
          <param name="cmdType">
        
        
          MySqlCommand command type (stored procedures, T-SQL statement, and so on.)
        
        
          </param>
        
        
          120
        
        
          ///
        
        
          <param name="cmdText">
        
        
          stored procedure name or T-SQL statement
        
        
          </param>
        
        
          121
        
        
          ///
        
        
          <param name="commandParameters">
        
        
          MySqlCommand to provide an array of parameters used in the list
        
        
          </param>
        
        
          122
        
        
          ///
        
        
          <returns>
        
        
          Returns a value that means number of rows affected
        
        
          </returns>
        
        
          123
        
        
          public
        
        
          static
        
        
          int
        
         ExecuteNonQuery(MySqlConnection conn, CommandType cmdType, 
        
          string
        
         cmdText, 
        
          params
        
        
           MySqlParameter[] commandParameters)


        
        
          124
        
        
                  {


        
        
          125
        
                     MySqlCommand cmd = 
        
          new
        
        
           MySqlCommand();


        
        
          126
        
                     PrepareCommand(cmd, conn, 
        
          null
        
        
          , cmdType, cmdText, commandParameters);


        
        
          127
        
        
          int
        
         val =
        
           cmd.ExecuteNonQuery();


        
        
          128
        
        
                      cmd.Parameters.Clear();


        
        
          129
        
        
          return
        
        
           val;


        
        
          130
        
        
                  }


        
        
          131
        
        
          132
        
        
          ///
        
        
          <summary>
        
        
          133
        
        
          ///
        
        
           Execute a SqlCommand command that does not return value, by appointed and specified connectionstring 


        
        
          134
        
        
          ///
        
        
           Array of form parameters using the parameter list 


        
        
          135
        
        
          ///
        
        
          </summary>
        
        
          136
        
        
          ///
        
        
          <param name="conn">
        
        
          sql Connection that has transaction
        
        
          </param>
        
        
          137
        
        
          ///
        
        
          <param name="cmdType">
        
        
          SqlCommand command type (stored procedures, T-SQL statement, and so on.)
        
        
          </param>
        
        
          138
        
        
          ///
        
        
          <param name="cmdText">
        
        
          stored procedure name or T-SQL statement
        
        
          </param>
        
        
          139
        
        
          ///
        
        
          <param name="commandParameters">
        
        
          MySqlCommand to provide an array of parameters used in the list
        
        
          </param>
        
        
          140
        
        
          ///
        
        
          <returns>
        
        
          Returns a value that means number of rows affected 
        
        
          </returns>
        
        
          141
        
        
          public
        
        
          static
        
        
          int
        
         ExecuteNonQuery(MySqlTransaction trans, CommandType cmdType, 
        
          string
        
         cmdText, 
        
          params
        
        
           MySqlParameter[] commandParameters)


        
        
          142
        
        
                  {


        
        
          143
        
                     MySqlCommand cmd = 
        
          new
        
        
           MySqlCommand();


        
        
          144
        
        
                      PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);


        
        
          145
        
        
          int
        
         val =
        
           cmd.ExecuteNonQuery();


        
        
          146
        
        
                      cmd.Parameters.Clear();


        
        
          147
        
        
          return
        
        
           val;


        
        
          148
        
        
                  }


        
        
          149
        
        
          150
        
        
          ///
        
        
          <summary>
        
        
          151
        
        
          ///
        
        
           Call method of sqldatareader to read data


        
        
          152
        
        
          ///
        
        
          </summary>
        
        
          153
        
        
          ///
        
        
          <param name="connectionString">
        
        
          connectionstring
        
        
          </param>
        
        
          154
        
        
          ///
        
        
          <param name="cmdType">
        
        
          command type, such as using stored procedures: CommandType.StoredProcedure
        
        
          </param>
        
        
          155
        
        
          ///
        
        
          <param name="cmdText">
        
        
          stored procedure name or T-SQL statement
        
        
          </param>
        
        
          156
        
        
          ///
        
        
          <param name="commandParameters">
        
        
          parameters
        
        
          </param>
        
        
          157
        
        
          ///
        
        
          <returns>
        
        
          SqlDataReader type of data collection
        
        
          </returns>
        
        
          158
        
        
          public
        
        
          static
        
         MySqlDataReader ExecuteReader(
        
          string
        
         connectionString, CommandType cmdType, 
        
          string
        
         cmdText, 
        
          params
        
        
           MySqlParameter[] commandParameters)


        
        
          159
        
        
                  {


        
        
          160
        
                     MySqlCommand cmd = 
        
          new
        
        
           MySqlCommand();


        
        
          161
        
                     MySqlConnection conn = 
        
          new
        
        
           MySqlConnection(connectionString);


        
        
          162
        
        
          163
        
        
          //
        
        
           we use a try/catch here because if the method throws an exception we want to 


        
        
          164
        
        
          //
        
        
           close the connection throw code, because no datareader will exist, hence the 


        
        
          165
        
        
          //
        
        
           commandBehaviour.CloseConnection will not work
        
        
          166
        
        
          try
        
        
          167
        
        
                      {


        
        
          168
        
                         PrepareCommand(cmd, conn, 
        
          null
        
        
          , cmdType, cmdText, commandParameters);


        
        
          169
        
                         MySqlDataReader rdr =
        
           cmd.ExecuteReader(CommandBehavior.CloseConnection);


        
        
          170
        
        
                          cmd.Parameters.Clear();


        
        
          171
        
        
          return
        
        
           rdr;


        
        
          172
        
        
                      }


        
        
          173
        
        
          catch
        
        
          174
        
        
                      {


        
        
          175
        
        
                          conn.Close();


        
        
          176
        
        
          throw
        
        
          ;


        
        
          177
        
        
                      }


        
        
          178
        
        
                  }


        
        
          179
        
        
          180
        
        
          ///
        
        
          <summary>
        
        
          181
        
        
          ///
        
        
           use the ExectueScalar to read a single result


        
        
          182
        
        
          ///
        
        
          </summary>
        
        
          183
        
        
          ///
        
        
          <param name="connectionString">
        
        
          connectionstring
        
        
          </param>
        
        
          184
        
        
          ///
        
        
          <param name="cmdType">
        
        
          command type, such as using stored procedures: CommandType.StoredProcedure
        
        
          </param>
        
        
          185
        
        
          ///
        
        
          <param name="cmdText">
        
        
          stored procedure name or T-SQL statement
        
        
          </param>
        
        
          186
        
        
          ///
        
        
          <param name="commandParameters">
        
        
          parameters
        
        
          </param>
        
        
          187
        
        
          ///
        
        
          <returns>
        
        
          a value in object type
        
        
          </returns>
        
        
          188
        
        
          public
        
        
          static
        
        
          object
        
         ExecuteScalar(
        
          string
        
         connectionString, CommandType cmdType, 
        
          string
        
         cmdText, 
        
          params
        
        
           MySqlParameter[] commandParameters)


        
        
          189
        
        
                  {


        
        
          190
        
                     MySqlCommand cmd = 
        
          new
        
        
           MySqlCommand();


        
        
          191
        
        
          192
        
        
          using
        
         (MySqlConnection connection = 
        
          new
        
        
           MySqlConnection(connectionString))


        
        
          193
        
        
                      {


        
        
          194
        
                         PrepareCommand(cmd, connection, 
        
          null
        
        
          , cmdType, cmdText, commandParameters);


        
        
          195
        
        
          object
        
         val =
        
           cmd.ExecuteScalar();


        
        
          196
        
        
                          cmd.Parameters.Clear();


        
        
          197
        
        
          return
        
        
           val;


        
        
          198
        
        
                      }


        
        
          199
        
        
                  }


        
        
          200
        
        
          201
        
        
          public
        
        
          static
        
         DataSet GetDataSet(
        
          string
        
         connectionString, 
        
          string
        
         cmdText, 
        
          params
        
        
           MySqlParameter[] commandParameters)


        
        
          202
        
        
                  {


        
        
          203
        
                     DataSet retSet = 
        
          new
        
        
           DataSet();


        
        
          204
        
        
          using
        
         (MySqlDataAdapter msda = 
        
          new
        
        
           MySqlDataAdapter(cmdText, connectionString))


        
        
          205
        
        
                      {


        
        
          206
        
        
                          msda.Fill(retSet);


        
        
          207
        
        
                      }


        
        
          208
        
        
          return
        
        
           retSet;


        
        
          209
        
        
                  }


        
        
          210
        
        
          211
        
        
          ///
        
        
          <summary>
        
        
          212
        
        
          ///
        
        
           cache the parameters in the HashTable


        
        
          213
        
        
          ///
        
        
          </summary>
        
        
          214
        
        
          ///
        
        
          <param name="cacheKey">
        
        
          hashtable key name
        
        
          </param>
        
        
          215
        
        
          ///
        
        
          <param name="commandParameters">
        
        
          the parameters that need to cached
        
        
          </param>
        
        
          216
        
        
          public
        
        
          static
        
        
          void
        
         CacheParameters(
        
          string
        
         cacheKey, 
        
          params
        
        
           MySqlParameter[] commandParameters)


        
        
          217
        
        
                  {


        
        
          218
        
                     parmCache[cacheKey] =
        
           commandParameters;


        
        
          219
        
        
                  }


        
        
          220
        
        
          221
        
        
          ///
        
        
          <summary>
        
        
          222
        
        
          ///
        
        
           get parameters in hashtable by cacheKey


        
        
          223
        
        
          ///
        
        
          </summary>
        
        
          224
        
        
          ///
        
        
          <param name="cacheKey">
        
        
          hashtable key name
        
        
          </param>
        
        
          225
        
        
          ///
        
        
          <returns>
        
        
          the parameters
        
        
          </returns>
        
        
          226
        
        
          public
        
        
          static
        
         MySqlParameter[] GetCachedParameters(
        
          string
        
        
           cacheKey)


        
        
          227
        
        
                  {


        
        
          228
        
                     MySqlParameter[] cachedParms =
        
           (MySqlParameter[])parmCache[cacheKey];


        
        
          229
        
        
          230
        
        
          if
        
         (cachedParms == 
        
          null
        
        
          )


        
        
          231
        
        
          return
        
        
          null
        
        
          ;


        
        
          232
        
        
          233
        
                     MySqlParameter[] clonedParms = 
        
          new
        
        
           MySqlParameter[cachedParms.Length];


        
        
          234
        
        
          235
        
        
          for
        
         (
        
          int
        
         i = 
        
          0
        
        , j = cachedParms.Length; i < j; i++
        
          )


        
        
          236
        
                         clonedParms[i] =
        
           (MySqlParameter)((ICloneable)cachedParms[i]).Clone();


        
        
          237
        
        
          238
        
        
          return
        
        
           clonedParms;


        
        
          239
        
        
                  }


        
        
          240
        
        
          241
        
        
          ///
        
        
          <summary>
        
        
          242
        
        
          ///
        
        
          Prepare parameters for the implementation of the command


        
        
          243
        
        
          ///
        
        
          </summary>
        
        
          244
        
        
          ///
        
        
          <param name="cmd">
        
        
          mySqlCommand command
        
        
          </param>
        
        
          245
        
        
          ///
        
        
          <param name="conn">
        
        
          database connection that is existing
        
        
          </param>
        
        
          246
        
        
          ///
        
        
          <param name="trans">
        
        
          database transaction processing 
        
        
          </param>
        
        
          247
        
        
          ///
        
        
          <param name="cmdType">
        
        
          SqlCommand command type (stored procedures, T-SQL statement, and so on.) 
        
        
          </param>
        
        
          248
        
        
          ///
        
        
          <param name="cmdText">
        
        
          Command text, T-SQL statements such as Select * from Products
        
        
          </param>
        
        
          249
        
        
          ///
        
        
          <param name="cmdParms">
        
        
          return the command that has parameters
        
        
          </param>
        
        
          250
        
        
          private
        
        
          static
        
        
          void
        
         PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, 
        
          string
        
        
           cmdText, MySqlParameter[] cmdParms)


        
        
          251
        
        
                  {


        
        
          252
        
        
          if
        
         (conn.State !=
        
           ConnectionState.Open)


        
        
          253
        
        
                          conn.Open();


        
        
          254
        
        
          255
        
                     cmd.Connection =
        
           conn;


        
        
          256
        
                     cmd.CommandText =
        
           cmdText;


        
        
          257
        
        
          258
        
        
          if
        
         (trans != 
        
          null
        
        
          )


        
        
          259
        
                         cmd.Transaction =
        
           trans;


        
        
          260
        
        
          261
        
                     cmd.CommandType =
        
           cmdType;


        
        
          262
        
        
          263
        
        
          if
        
         (cmdParms != 
        
          null
        
        
          )


        
        
          264
        
        
          foreach
        
         (MySqlParameter parm 
        
          in
        
        
           cmdParms)


        
        
          265
        
        
                              cmd.Parameters.Add(parm);


        
        
          266
        
        
                  }


        
        
          267
        
        
          #region
        
         parameters


        
          268
        
        
          ///
        
        
          <summary>
        
        
          269
        
        
          ///
        
        
           Set parameters


        
        
          270
        
        
          ///
        
        
          </summary>
        
        
          271
        
        
          ///
        
        
          <param name="ParamName">
        
        
          parameter name
        
        
          </param>
        
        
          272
        
        
          ///
        
        
          <param name="DbType">
        
        
          data type
        
        
          </param>
        
        
          273
        
        
          ///
        
        
          <param name="Size">
        
        
          type size
        
        
          </param>
        
        
          274
        
        
          ///
        
        
          <param name="Direction">
        
        
          input or output
        
        
          </param>
        
        
          275
        
        
          ///
        
        
          <param name="Value">
        
        
          set the value
        
        
          </param>
        
        
          276
        
        
          ///
        
        
          <returns>
        
        
          Return parameters that has been assigned
        
        
          </returns>
        
        
          277
        
        
          public
        
        
          static
        
         MySqlParameter CreateParam(
        
          string
        
         ParamName, MySqlDbType DbType, Int32 Size, ParameterDirection Direction, 
        
          object
        
        
           Value)


        
        
          278
        
        
                  {


        
        
          279
        
        
                      MySqlParameter param;


        
        
          280
        
        
          281
        
        
          282
        
        
          if
        
         (Size > 
        
          0
        
        
          )


        
        
          283
        
        
                      {


        
        
          284
        
                         param = 
        
          new
        
        
           MySqlParameter(ParamName, DbType, Size);


        
        
          285
        
        
                      }


        
        
          286
        
        
          else
        
        
          287
        
        
                      {


        
        
          288
        
        
          289
        
                         param = 
        
          new
        
        
           MySqlParameter(ParamName, DbType);


        
        
          290
        
        
                      }


        
        
          291
        
        
          292
        
        
          293
        
                     param.Direction =
        
           Direction;


        
        
          294
        
        
          if
        
         (!(Direction == ParameterDirection.Output && Value == 
        
          null
        
        
          ))


        
        
          295
        
        
                      {


        
        
          296
        
                         param.Value =
        
           Value;


        
        
          297
        
        
                      }


        
        
          298
        
        
          299
        
        
          300
        
        
          return
        
        
           param;


        
        
          301
        
        
                  }


        
        
          302
        
        
          303
        
        
          ///
        
        
          <summary>
        
        
          304
        
        
          ///
        
        
           set Input parameters


        
        
          305
        
        
          ///
        
        
          </summary>
        
        
          306
        
        
          ///
        
        
          <param name="ParamName">
        
        
          parameter names, such as:@ id 
        
        
          </param>
        
        
          307
        
        
          ///
        
        
          <param name="DbType">
        
        
          parameter types, such as: MySqlDbType.Int
        
        
          </param>
        
        
          308
        
        
          ///
        
        
          <param name="Size">
        
        
          size parameters, such as: the length of character type for the 100
        
        
          </param>
        
        
          309
        
        
          ///
        
        
          <param name="Value">
        
        
          parameter value to be assigned
        
        
          </param>
        
        
          310
        
        
          ///
        
        
          <returns>
        
        
          Parameters
        
        
          </returns>
        
        
          311
        
        
          public
        
        
          static
        
         MySqlParameter CreateInParam(
        
          string
        
         ParamName, MySqlDbType DbType, 
        
          int
        
         Size, 
        
          object
        
        
           Value)


        
        
          312
        
        
                  {


        
        
          313
        
        
          return
        
        
           CreateParam(ParamName, DbType, Size, ParameterDirection.Input, Value);


        
        
          314
        
        
                  }


        
        
          315
        
        
          316
        
        
          ///
        
        
          <summary>
        
        
          317
        
        
          ///
        
        
           Output parameters 


        
        
          318
        
        
          ///
        
        
          </summary>
        
        
          319
        
        
          ///
        
        
          <param name="ParamName">
        
        
          parameter names, such as:@ id
        
        
          </param>
        
        
          320
        
        
          ///
        
        
          <param name="DbType">
        
        
          parameter types, such as: MySqlDbType.Int
        
        
          </param>
        
        
          321
        
        
          ///
        
        
          <param name="Size">
        
        
          size parameters, such as: the length of character type for the 100
        
        
          </param>
        
        
          322
        
        
          ///
        
        
          <param name="Value">
        
        
          parameter value to be assigned
        
        
          </param>
        
        
          323
        
        
          ///
        
        
          <returns>
        
        
          Parameters
        
        
          </returns>
        
        
          324
        
        
          public
        
        
          static
        
         MySqlParameter CreateOutParam(
        
          string
        
         ParamName, MySqlDbType DbType, 
        
          int
        
        
           Size)


        
        
          325
        
        
                  {


        
        
          326
        
        
          return
        
         CreateParam(ParamName, DbType, Size, ParameterDirection.Output, 
        
          null
        
        
          );


        
        
          327
        
        
                  }


        
        
          328
        
        
          329
        
        
          ///
        
        
          <summary>
        
        
          330
        
        
          ///
        
        
           Set return parameter value 


        
        
          331
        
        
          ///
        
        
          </summary>
        
        
          332
        
        
          ///
        
        
          <param name="ParamName">
        
        
          parameter names, such as:@ id
        
        
          </param>
        
        
          333
        
        
          ///
        
        
          <param name="DbType">
        
        
          parameter types, such as: MySqlDbType.Int
        
        
          </param>
        
        
          334
        
        
          ///
        
        
          <param name="Size">
        
        
          size parameters, such as: the length of character type for the 100
        
        
          </param>
        
        
          335
        
        
          ///
        
        
          <param name="Value">
        
        
          parameter value to be assigned
        
        
          <</param>
        
        
          336
        
        
          ///
        
        
          <returns>
        
        
          Parameters
        
        
          </returns>
        
        
          337
        
        
          public
        
        
          static
        
         MySqlParameter CreateReturnParam(
        
          string
        
         ParamName, MySqlDbType DbType, 
        
          int
        
        
           Size)


        
        
          338
        
        
                  {


        
        
          339
        
        
          return
        
         CreateParam(ParamName, DbType, Size, ParameterDirection.ReturnValue, 
        
          null
        
        
          );


        
        
          340
        
        
                  }


        
        
          341
        
        
          342
        
        
          ///
        
        
          <summary>
        
        
          343
        
        
          ///
        
        
           Generate paging storedProcedure parameters


        
        
          344
        
        
          ///
        
        
          </summary>
        
        
          345
        
        
          ///
        
        
          <param name="CurrentIndex">
        
        
          CurrentPageIndex
        
        
          </param>
        
        
          346
        
        
          ///
        
        
          <param name="PageSize">
        
        
          pageSize
        
        
          </param>
        
        
          347
        
        
          ///
        
        
          <param name="WhereSql">
        
        
          query Condition
        
        
          </param>
        
        
          348
        
        
          ///
        
        
          <param name="TableName">
        
        
          tableName
        
        
          </param>
        
        
          349
        
        
          ///
        
        
          <param name="Columns">
        
        
          columns to query
        
        
          </param>
        
        
          350
        
        
          ///
        
        
          <param name="Sort">
        
        
          sort
        
        
          </param>
        
        
          351
        
        
          ///
        
        
          <returns>
        
        
          MySqlParameter collection
        
        
          </returns>
        
        
          352
        
        
          public
        
        
          static
        
         MySqlParameter[] GetPageParm(
        
          int
        
         CurrentIndex, 
        
          int
        
         PageSize, 
        
          string
        
         WhereSql, 
        
          string
        
         TableName, 
        
          string
        
        
           Columns, Hashtable Sort)


        
        
          353
        
        
                  {


        
        
          354
        
                     MySqlParameter[] parm =
        
           { 


        
        
          355
        
                                           MYSQLHelper.CreateInParam(
        
          "
        
        
          @CurrentIndex
        
        
          "
        
        ,  MySqlDbType.Int32,      
        
          4
        
        
          ,      CurrentIndex    ),


        
        
          356
        
                                           MYSQLHelper.CreateInParam(
        
          "
        
        
          @PageSize
        
        
          "
        
        ,      MySqlDbType.Int32,      
        
          4
        
        
          ,      PageSize        ),


        
        
          357
        
                                           MYSQLHelper.CreateInParam(
        
          "
        
        
          @WhereSql
        
        
          "
        
        ,      MySqlDbType.VarChar,  
        
          2500
        
        
          ,    WhereSql        ),


        
        
          358
        
                                           MYSQLHelper.CreateInParam(
        
          "
        
        
          @TableName
        
        
          "
        
        ,     MySqlDbType.VarChar,  
        
          20
        
        
          ,     TableName       ),


        
        
          359
        
                                           MYSQLHelper.CreateInParam(
        
          "
        
        
          @Column
        
        
          "
        
        ,        MySqlDbType.VarChar,  
        
          2500
        
        
          ,    Columns         ),


        
        
          360
        
                                           MYSQLHelper.CreateInParam(
        
          "
        
        
          @Sort
        
        
          "
        
        ,          MySqlDbType.VarChar,  
        
          50
        
        
          ,     GetSort(Sort)   ),


        
        
          361
        
                                           MYSQLHelper.CreateOutParam(
        
          "
        
        
          @RecordCount
        
        
          "
        
        ,  MySqlDbType.Int32,      
        
          4
        
        
                                 )


        
        
          362
        
        
                                            };


        
        
          363
        
        
          return
        
        
           parm;


        
        
          364
        
        
                  }


        
        
          365
        
        
          ///
        
        
          <summary>
        
        
          366
        
        
          ///
        
        
           Statistics data that in table


        
        
          367
        
        
          ///
        
        
          </summary>
        
        
          368
        
        
          ///
        
        
          <param name="TableName">
        
        
          table name
        
        
          </param>
        
        
          369
        
        
          ///
        
        
          <param name="Columns">
        
        
          Statistics column
        
        
          </param>
        
        
          370
        
        
          ///
        
        
          <param name="WhereSql">
        
        
          conditions
        
        
          </param>
        
        
          371
        
        
          ///
        
        
          <returns>
        
        
          Set of parameters
        
        
          </returns>
        
        
          372
        
        
          public
        
        
          static
        
         MySqlParameter[] GetCountParm(
        
          string
        
         TableName, 
        
          string
        
         Columns, 
        
          string
        
        
           WhereSql)


        
        
          373
        
        
                  {


        
        
          374
        
                     MySqlParameter[] parm =
        
           { 


        
        
          375
        
                                           MYSQLHelper.CreateInParam(
        
          "
        
        
          @TableName
        
        
          "
        
        ,     MySqlDbType.VarChar,  
        
          20
        
        
          ,     TableName       ),


        
        
          376
        
                                           MYSQLHelper.CreateInParam(
        
          "
        
        
          @CountColumn
        
        
          "
        
        ,  MySqlDbType.VarChar,  
        
          20
        
        
          ,     Columns         ),


        
        
          377
        
                                           MYSQLHelper.CreateInParam(
        
          "
        
        
          @WhereSql
        
        
          "
        
        ,      MySqlDbType.VarChar,  
        
          250
        
        
          ,    WhereSql        ),


        
        
          378
        
                                           MYSQLHelper.CreateOutParam(
        
          "
        
        
          @RecordCount
        
        
          "
        
        ,  MySqlDbType.Int32,      
        
          4
        
        
                                 )


        
        
          379
        
        
                                            };


        
        
          380
        
        
          return
        
        
           parm;


        
        
          381
        
        
                  }


        
        
          382
        
        
          ///
        
        
          <summary>
        
        
          383
        
        
          ///
        
        
           Get the sql that is Sorted 


        
        
          384
        
        
          ///
        
        
          </summary>
        
        
          385
        
        
          ///
        
        
          <param name="sort">
        
        
           sort column and values
        
        
          </param>
        
        
          386
        
        
          ///
        
        
          <returns>
        
        
          SQL sort string
        
        
          </returns>
        
        
          387
        
        
          private
        
        
          static
        
        
          string
        
        
           GetSort(Hashtable sort)


        
        
          388
        
        
                  {


        
        
          389
        
        
          string
        
         str = 
        
          ""
        
        
          ;


        
        
          390
        
        
          int
        
         i = 
        
          0
        
        
          ;


        
        
          391
        
        
          if
        
         (sort != 
        
          null
        
         && sort.Count > 
        
          0
        
        
          )


        
        
          392
        
        
                      {


        
        
          393
        
        
          foreach
        
         (DictionaryEntry de 
        
          in
        
        
           sort)


        
        
          394
        
        
                          {


        
        
          395
        
                             i++
        
          ;


        
        
          396
        
                             str += de.Key + 
        
          "
        
        
          "
        
         +
        
           de.Value;


        
        
          397
        
        
          if
        
         (i !=
        
           sort.Count)


        
        
          398
        
        
                              {


        
        
          399
        
                                 str += 
        
          "
        
        
          ,
        
        
          "
        
        
          ;


        
        
          400
        
        
                              }


        
        
          401
        
        
                          }


        
        
          402
        
        
                      }


        
        
          403
        
        
          return
        
        
           str;


        
        
          404
        
        
                  }


        
        
          405
        
        
          406
        
        
          ///
        
        
          <summary>
        
        
          407
        
        
          ///
        
        
           execute a trascation include one or more sql sentence(author:donne yin)


        
        
          408
        
        
          ///
        
        
          </summary>
        
        
          409
        
        
          ///
        
        
          <param name="connectionString"></param>
        
        
          410
        
        
          ///
        
        
          <param name="cmdType"></param>
        
        
          411
        
        
          ///
        
        
          <param name="cmdTexts"></param>
        
        
          412
        
        
          ///
        
        
          <param name="commandParameters"></param>
        
        
          413
        
        
          ///
        
        
          <returns>
        
        
          execute trascation result(success: true | fail: false)
        
        
          </returns>
        
        
          414
        
        
          public
        
        
          static
        
        
          bool
        
         ExecuteTransaction(
        
          string
        
         connectionString, CommandType cmdType, 
        
          string
        
        [] cmdTexts, 
        
          params
        
        
           MySqlParameter[][] commandParameters)


        
        
          415
        
        
                  {


        
        
          416
        
                     MySqlConnection myConnection = 
        
          new
        
         MySqlConnection(connectionString);       
        
          //
        
        
          get the connection object
        
        
          417
        
                     myConnection.Open();                                                        
        
          //
        
        
          open the connection
        
        
          418
        
                     MySqlTransaction myTrans = myConnection.BeginTransaction();                 
        
          //
        
        
          begin a trascation
        
        
          419
        
                     MySqlCommand cmd = 
        
          new
        
        
           MySqlCommand();


        
        
          420
        
                     cmd.Connection =
        
           myConnection;


        
        
          421
        
                     cmd.Transaction =
        
           myTrans;


        
        
          422
        
        
          423
        
        
          try
        
        
          424
        
        
                      {


        
        
          425
        
        
          for
        
         (
        
          int
        
         i = 
        
          0
        
        ;i<cmdTexts.Length; i++
        
          )


        
        
          426
        
        
                          {


        
        
          427
        
                             PrepareCommand(cmd, myConnection, 
        
          null
        
        
          , cmdType, cmdTexts[i], commandParameters[i]);


        
        
          428
        
        
                              cmd.ExecuteNonQuery();


        
        
          429
        
        
                              cmd.Parameters.Clear();


        
        
          430
        
        
                          }


        
        
          431
        
        
                          myTrans.Commit();


        
        
          432
        
        
                      }


        
        
          433
        
        
          catch
        
        
          434
        
        
                      {


        
        
          435
        
        
                          myTrans.Rollback();


        
        
          436
        
        
          return
        
        
          false
        
        
          ;


        
        
          437
        
        
                      }


        
        
          438
        
        
          finally
        
        
          439
        
        
                      {


        
        
          440
        
        
                          myConnection.Close();


        
        
          441
        
        
                      }


        
        
          442
        
        
          return
        
        
          true
        
        
          ;


        
        
          443
        
        
                  }


        
        
          444
        
        
          #endregion
        
        
          445
        
        
              }


        
        
          446
        
         }
      

MySqlHelper c#访问MySql的工具类


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论