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.
147 lines
4.9 KiB
147 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;
|
|
}
|
|
}
|
|
}
|
|
|