92 lines
2.9 KiB
C#
92 lines
2.9 KiB
C#
using Dapper;
|
|
using MySql.Data.MySqlClient;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
|
|
|
|
/// <summary>
|
|
/// 数据库操作类 需要nuget 安装 Dapper 和 MySql.Data
|
|
/// </summary>
|
|
public class MysqlDBHelper
|
|
{
|
|
// todo 生产环境切换数据库地址
|
|
//#if DEBUG
|
|
private const string _basicConnectionStr =
|
|
"Server=192.168.2.9;Port=3306;Database=marking_basic;Uid=root;Pwd=qwe123!@#;MinimumPoolSize=1;MaximumPoolSize=100;CharSet=utf8mb4;AllowLoadLocalInfile=true;AllowUserVariables=True;";
|
|
//#else
|
|
// private const string _basicConnectionStr =
|
|
// "Server=mk-rds.23544.com;Port=33306;Database=marking_basic;Uid=marking;Pwd=poiuytPOIUYT098765)(*&^%;MinimumPoolSize=1;MaximumPoolSize=100;CharSet=utf8mb4;AllowLoadLocalInfile=true;AllowUserVariables=True;";
|
|
//#endif
|
|
|
|
|
|
private string _tenantConnectionStr;
|
|
|
|
public MysqlDBHelper(long tenantCode)
|
|
{
|
|
if (tenantCode <= 0)
|
|
{
|
|
throw new System.ArgumentNullException("tenantCode");
|
|
}
|
|
_tenantConnectionStr = GetTenantConnectionString(tenantCode);
|
|
}
|
|
|
|
private string GetTenantConnectionString(long tenantCode)
|
|
{
|
|
using (IDbConnection connection = new MySqlConnection(_basicConnectionStr))
|
|
{
|
|
var tenant = connection.QueryFirst<dynamic>("select * from tenant where tenant_code=" + tenantCode);
|
|
return "Server=" + tenant.ip_addr + ";Port=" + tenant.port + ";Database=" + tenant.database + ";Uid=" + tenant.dbuser + ";Pwd=" + tenant.password + ";MinimumPoolSize=1;MaximumPoolSize=100;CharSet=utf8mb4;AllowLoadLocalInfile=true;AllowUserVariables=True;";
|
|
}
|
|
}
|
|
|
|
public DataTable ExecuteQuery(string sql)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
using (IDbConnection connection = new MySqlConnection(_tenantConnectionStr))
|
|
{
|
|
using (var reader = connection.ExecuteReader(sql))
|
|
{
|
|
dt.Load(reader);
|
|
}
|
|
}
|
|
return dt;
|
|
}
|
|
|
|
public object ExecuteScalar(string sql)
|
|
{
|
|
using (IDbConnection connection = new MySqlConnection(_tenantConnectionStr))
|
|
{
|
|
return connection.ExecuteScalar(sql);
|
|
}
|
|
}
|
|
|
|
public int ExecuteNoQuery(string sql)
|
|
{
|
|
using (IDbConnection connection = new MySqlConnection(_tenantConnectionStr))
|
|
{
|
|
return connection.Execute(sql);
|
|
}
|
|
}
|
|
|
|
public int ExecuteNoQuery(string sql, params MySqlParameter[] sp)
|
|
{
|
|
using (MySqlConnection connection = new MySqlConnection(_tenantConnectionStr))
|
|
{
|
|
connection.Open();
|
|
using (MySqlCommand cmd = new MySqlCommand(sql, connection))
|
|
{
|
|
cmd.CommandType = CommandType.Text;
|
|
|
|
if (sp != null && sp.Length > 0)
|
|
{
|
|
cmd.Parameters.AddRange(sp);
|
|
}
|
|
|
|
return cmd.ExecuteNonQuery();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|