|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458 |
- using MySql.Data.MySqlClient;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Text;
-
- namespace CNAS_DBSync
- {
- public static class MySQLHelper
- {
- private static log4net.ILog log = log4net.LogManager.GetLogger("MySQLHelper");
-
- private static String mConnStr = null;
-
- public static void InitConnectionString(string strServerIP,string strServerPort,string strServerHost,string strServerUser,string strServerPwd)
- {
- mConnStr = "server=" + strServerIP + ";port=" + strServerPort + ";user=" + strServerUser + ";password=" + strServerPwd + ";database=" + strServerHost + ";CharSet=utf8";
- }
-
- /// <summary>
- /// 对SQLite数据库执行增删改操作,返回受影响的行数。
- /// </summary>
- /// <param name="sql">要执行的增删改的SQL语句</param>
- /// <returns></returns>
- public static int ExecuteNonQuery(String sql)
- {
- try
- {
- using (MySqlConnection connection = new MySqlConnection(mConnStr))
- {
- connection.Open();
- MySqlTransaction transaction = connection.BeginTransaction();
-
- using (MySqlCommand cmd = new MySqlCommand())
- {
- try
- {
- PrepareCommand(cmd, connection, transaction, CommandType.Text, sql, null);
-
- int rows = cmd.ExecuteNonQuery();
- transaction.Commit();
-
- cmd.Parameters.Clear();
- return rows;
- }
- catch (MySqlException e1)
- {
- try
- {
- transaction.Rollback();
- }
- catch (Exception e2)
- {
- log.Error(e2.Message);
- throw e2;
- }
- log.Error(e1.Message);
- throw e1;
- }
- }
- }
- }
- catch (Exception e)
- {
- log.Error(e.Message);
- throw e;
- }
- }
-
- /// <summary>
- /// 对数据库执行增删改操作,返回受影响的行数。
- /// </summary>
- /// <param name="sql">要执行的增删改的SQL语句</param>
- /// <returns></returns>
- public static int ExecuteNonQuery(String sql, MySqlParameter[] cmdParams)
- {
- try
- {
- using (MySqlConnection connection = new MySqlConnection(mConnStr))
- {
- connection.Open();
- MySqlTransaction transaction = connection.BeginTransaction();
-
- using (MySqlCommand cmd = new MySqlCommand())
- {
- try
- {
- PrepareCommand(cmd, connection, transaction, CommandType.Text, sql, cmdParams);
-
- int rows = cmd.ExecuteNonQuery();
- transaction.Commit();
-
- cmd.Parameters.Clear();
- return rows;
- }
- catch (MySqlException e1)
- {
- try
- {
- transaction.Rollback();
- }
- catch (Exception e2)
- {
- log.Error(e2.Message);
- throw e2;
- }
- log.Error(e1.Message);
- throw e1;
- }
- }
- }
- }
- catch (Exception e)
- {
- log.Error(e.Message);
- throw e;
- }
- }
-
- /// <summary>
- /// 对SQLite数据库执行操作,返回 返回第一行第一列数据
- /// </summary>
- /// <param name="sql"></param>
- /// <returns></returns>
- public static int ExecuteScalar(String sql)
- {
- try
- {
- using (MySqlConnection connection = new MySqlConnection(mConnStr))
- {
- connection.Open();
- MySqlTransaction transaction = connection.BeginTransaction();
-
- using (MySqlCommand cmd = new MySqlCommand())
- {
- try
- {
- int line = 0;
-
- PrepareCommand(cmd, connection, transaction, CommandType.Text, sql, null);
-
- String str = cmd.ExecuteScalar().ToString();
- transaction.Commit();
-
- line = Convert.ToInt32(str);
- cmd.Parameters.Clear();
-
- return line;
- }
- catch (MySqlException e1)
- {
- try
- {
- transaction.Rollback();
- }
- catch (Exception e2)
- {
- log.Error(e2.Message);
- throw e2;
- }
-
- log.Error(e1.Message);
- throw e1;
- }
- }
- }
- }
- catch (Exception e)
- {
- log.Error(e.Message);
- throw e;
- }
- }
-
- /// <summary>
- /// 对SQLite数据库执行操作,返回 返回第一行第一列数据
- /// </summary>
- /// <param name="sql"></param>
- /// <returns></returns>
- public static int ExecuteScalar(String sql, MySqlParameter[] cmdParams)
- {
- try
- {
- using (MySqlConnection connection = new MySqlConnection(mConnStr))
- {
- connection.Open();
- MySqlTransaction transaction = connection.BeginTransaction();
-
- using (MySqlCommand cmd = new MySqlCommand())
- {
- try
- {
- int line = 0;
-
- PrepareCommand(cmd, connection, transaction, CommandType.Text, sql, cmdParams);
-
- String str = cmd.ExecuteScalar().ToString();
- transaction.Commit();
-
- line = Convert.ToInt32(str);
- cmd.Parameters.Clear();
-
- return line;
- }
- catch (MySqlException e1)
- {
- try
- {
- transaction.Rollback();
- }
- catch (Exception e2)
- {
- log.Error(e2.Message);
- throw e2;
- }
-
- log.Error(e1.Message);
- throw e1;
- }
- }
- }
- }
- catch (Exception e)
- {
- log.Error(e.Message);
- throw e;
- }
- }
-
- /// <summary>
- /// 用执行的数据库连接执行一个返回数据集的sql命令
- /// </summary>
- /// <param name="sql"></param>
- /// <returns></returns>
- public static MySqlDataReader ExecuteReader(String sql)
- {
- try
- {
- //创建一个MySqlConnection对象
- using (MySqlConnection connection = new MySqlConnection(mConnStr))
- {
- connection.Open();
- MySqlTransaction transaction = connection.BeginTransaction();
-
- //创建一个MySqlCommand对象
- using (MySqlCommand cmd = new MySqlCommand())
- {
- try
- {
- PrepareCommand(cmd, connection, transaction, CommandType.Text, sql, null);
-
- MySqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
- transaction.Commit();
-
- cmd.Parameters.Clear();
- return reader;
- }
- catch (MySqlException e1)
- {
- try
- {
- transaction.Rollback();
- }
- catch (Exception e2)
- {
- log.Error(e2.Message);
- throw e2;
- }
-
- log.Error(e1.Message);
- throw e1;
- }
- }
- }
- }
- catch (Exception e)
- {
- log.Error(e.Message);
- throw e;
- }
- }
-
- /// <summary>
- /// 查询返回Dtaset
- /// </summary>
- /// <param name="sql"></param>
- /// <returns></returns>
- public static DataSet ExecuteDataSet(String sql)
- {
- try
- {
- //创建一个MySqlConnection对象
- using (MySqlConnection connection = new MySqlConnection(mConnStr))
- {
- connection.Open();
- MySqlTransaction transaction = connection.BeginTransaction();
-
- //创建一个MySqlCommand对象
- using (MySqlCommand cmd = new MySqlCommand())
- {
- try
- {
- PrepareCommand(cmd, connection, transaction, CommandType.Text, sql, null);
-
- MySqlDataAdapter adapter = new MySqlDataAdapter();
- adapter.SelectCommand = cmd;
- DataSet ds = new DataSet();
-
- adapter.Fill(ds);
-
- transaction.Commit();
-
- //清除参数
- cmd.Parameters.Clear();
- return ds;
-
- }
- catch (MySqlException e1)
- {
- try
- {
- transaction.Rollback();
- }
- catch (Exception e2)
- {
- log.Error(e2.Message);
- throw e2;
- }
-
- log.Error(e1.Message);
- throw e1;
- }
- }
- }
- }
- catch (Exception e)
- {
- log.Error(e.Message);
- throw e;
- }
- }
-
- /// <summary>
- /// 查询返回Dtaset
- /// </summary>
- /// <param name="sql"></param>
- /// <returns></returns>
- public static DataSet ExecuteDataSet(String sql, MySqlParameter[] cmdParams)
- {
- try
- {
- //创建一个MySqlConnection对象
- using (MySqlConnection connection = new MySqlConnection(mConnStr))
- {
- connection.Open();
- MySqlTransaction transaction = connection.BeginTransaction();
-
- //创建一个MySqlCommand对象
- using (MySqlCommand cmd = new MySqlCommand())
- {
- try
- {
- PrepareCommand(cmd, connection, transaction, CommandType.Text, sql, cmdParams);
-
- MySqlDataAdapter adapter = new MySqlDataAdapter();
- adapter.SelectCommand = cmd;
- DataSet ds = new DataSet();
-
- adapter.Fill(ds);
-
- transaction.Commit();
-
- //清除参数
- cmd.Parameters.Clear();
- return ds;
-
- }
- catch (MySqlException e1)
- {
- try
- {
- transaction.Rollback();
- }
- catch (Exception e2)
- {
- log.Error(e2.Message);
- throw e2;
- }
-
- log.Error(e1.Message);
- throw e1;
- }
- }
- }
- }
- catch (Exception e)
- {
- log.Error(e.Message);
- throw e;
- }
- }
-
- /// <summary>
- /// 准备执行一个命令
- /// </summary>
- /// <param name="cmd">sql命令</param>
- /// <param name="conn">OleDb连接</param>
- /// <param name="trans">OleDb事务</param>
- /// <param name="cmdType">命令类型例如 存储过程或者文本</param>
- /// <param name="cmdText">命令文本,例如:Select * from Products</param>
- /// <param name="cmdParms">执行命令的参数</param>
- private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, MySqlParameter[] cmdParms)
- {
- if (conn.State != ConnectionState.Open)
- conn.Open();
-
- cmd.Connection = conn;
- cmd.CommandText = cmdText;
-
- if (trans != null)
- cmd.Transaction = trans;
-
- cmd.CommandType = cmdType;
-
- if (cmdParms != null)
- {
- foreach (MySqlParameter parm in cmdParms)
- cmd.Parameters.Add(parm);
- }
- }
-
-
- public static bool TestConnectMySql()
- {
- bool bIfSuccess = false;
- try
- {
- //创建一个MySqlConnection对象
- using (MySqlConnection connection = new MySqlConnection(mConnStr))
- {
- connection.Open();
-
- if (connection.State == System.Data.ConnectionState.Open)
- bIfSuccess = true;
- }
- }
- catch (Exception ex)
- {
- log.Error(ex.Message);
- bIfSuccess = false;
- }
-
- return bIfSuccess;
- }
-
- }
- }
|