using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CameraErrorCheck { /// /// 数据库查询帮助类 /// public class CameraMySqlHelp { /// /// 数据库连接字符串 /// public static string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MySqlConnString"].ConnectionString; /// /// 执行查询语句,返回DataTable /// /// 查询语句 /// DataTable public static DataTable QueryTable(string SQLString) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { var dt = new DataTable(); try { connection.Open(); MySqlDataAdapter command = new MySqlDataAdapter(SQLString, connection); command.Fill(dt); } catch (Exception ex) { throw new Exception(ex.Message); } finally { if (connection.State == ConnectionState.Open) { connection.Close(); MySqlConnection.ClearPool(connection);//加入此行可释放连接 connection.Dispose(); } GC.Collect(); } return dt; } } /// /// 执行Sql并返回受影响行数 /// /// Sql语句 /// 参数 /// 受影响行数 public static int Execute(string SQLString)//Execute(string sql,) { return ExecuteSql(SQLString); } /// /// 执行SQL语句,返回影响的记录数 /// /// SQL语句 /// 影响的记录数 public static int ExecuteSql(string SQLString) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { using (MySqlCommand cmd = new MySqlCommand(SQLString, connection)) { try { connection.Open(); int rows = cmd.ExecuteNonQuery(); return rows; } catch (Exception E) { connection.Close(); throw new Exception(E.Message); } finally { if (connection.State == ConnectionState.Open) { connection.Close(); MySqlConnection.ClearPool(connection);//加入此行可释放连接 connection.Dispose(); } GC.Collect(); } } } } /// /// 执行多条SQL语句,实现数据库事务。 /// /// 多条SQL语句 public static bool ExecuteSqlTran(List SQLStringList) { var _result = false; using (MySqlConnection connection = new MySqlConnection(connectionString)) { connection.Open(); MySqlCommand cmd = new MySqlCommand(); cmd.Connection = connection; MySqlTransaction tx = connection.BeginTransaction(); cmd.Transaction = tx; try { foreach (var strSql in SQLStringList) { if (strSql.Trim().Length > 1) { cmd.CommandText = strSql; cmd.ExecuteNonQuery(); } } tx.Commit(); _result = true; } catch (Exception E) { tx.Rollback(); } finally { if (connection.State == ConnectionState.Open) { connection.Close(); MySqlConnection.ClearPool(connection);//加入此行可释放连接 connection.Dispose(); } GC.Collect(); } } return _result; } } }