软测单独项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

148 lines
4.9 KiB

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
{
/// <summary>
/// 数据库查询帮助类
/// </summary>
public class CameraMySqlHelp
{
/// <summary>
/// 数据库连接字符串
/// </summary>
public static string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MySqlConnString"].ConnectionString;
/// <summary>
/// 执行查询语句,返回DataTable
/// </summary>
/// <param name="SQLString">查询语句</param>
/// <returns>DataTable</returns>
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;
}
}
/// <summary>
/// 执行Sql并返回受影响行数
/// </summary>
/// <param name="SQLString">Sql语句</param>
/// <param name="cmdParms">参数</param>
/// <returns>受影响行数</returns>
public static int Execute(string SQLString)//Execute(string sql,)
{
return ExecuteSql(SQLString);
}
/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
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();
}
}
}
}
/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
public static bool ExecuteSqlTran(List<string> 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;
}
}
}