using System.Data;
using ADO_Web_2_Connect.Data;
using MySqlConnector;
namespace ADO_Web_2_Connect.Helper;
public class MysqlHelper
{
private static readonly string? ConnStr;
static MysqlHelper()
{
ConnStr ??= AppConfigurationServices.Configuration.GetConnectionString("BunnyTest");
}
///
/// 查询数据库
///
/// SQL语句
///
public static int ExecuteNonQuery(string sql)
{
using var mySqlConnection = new MySqlConnection(ConnStr);
mySqlConnection.Open();
var command = new MySqlCommand(sql, mySqlConnection);
return command.ExecuteNonQuery();
}
///
/// 异步查询数据库
///
/// SQL语句
///
public static async Task ExecuteQueryAsync(string sql)
{
await using var mySqlConnection = new MySqlConnection(ConnStr);
mySqlConnection.Open();
var command = new MySqlCommand(sql, mySqlConnection);
return await command.ExecuteNonQueryAsync();
}
///
/// 读取数据库流
///
/// SQL语句
///
public static MySqlDataReader ExecuteReader(string sql)
{
using var mySqlConnection = new MySqlConnection(ConnStr);
mySqlConnection.Open();
var command = new MySqlCommand(sql, mySqlConnection);
return command.ExecuteReader(CommandBehavior.CloseConnection);
}
///
/// 异步读取数据库流
///
/// SQL语句
///
public static async Task ExecuteReaderAsync(string sql)
{
var mySqlConnection = new MySqlConnection(ConnStr);
mySqlConnection.Open();
var command = new MySqlCommand(sql, mySqlConnection);
return await command.ExecuteReaderAsync();
}
///
/// 异步读取数据库流
///
/// SQL语句
///
public static async Task ExecuteReaderAsyncTest(string sql)
{
await using var mySqlConnection = new MySqlConnection();
mySqlConnection.Open();
var command = new MySqlCommand(sql, mySqlConnection);
return await command.ExecuteReaderAsync(CommandBehavior.CloseConnection);
}
///
/// 获取首行首列的值
///
/// SQL语句
///
public static object? ExecuteScalar(string sql)
{
using var mySqlConnection = new MySqlConnection(ConnStr);
mySqlConnection.Open();
var mySqlCommand = mySqlConnection.CreateCommand();
mySqlCommand.CommandText = sql;
mySqlCommand.CommandType = CommandType.Text;
return mySqlCommand.ExecuteScalar();
}
///
/// 异步获取首行首列
///
/// SQL语句
///
public static async Task