You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.5 KiB
C#

using SqlSugar;
using System;
using System.Configuration;
namespace ZJ_BYD.Untils
{
public partial class DBHelper
{
public static SqlSugarScope sqlSugarDb = null;
public static string defaultConnStr = "";
public DBHelper()
{
}
public static void GetConnStr()
{
var connectionStr = "pgsqlconnectionstring";
if (Program.CurrentDbType == DbType.MySql)
{
connectionStr = "connectionstring";
}
defaultConnStr = ConfigurationManager.ConnectionStrings[connectionStr].ConnectionString;
sqlSugarDb = GetDb();
}
public static SqlSugarScope GetConnStrByIp(string ip)
{
var connStr = $"PORT=5432;DATABASE=sc_byd;HOST={ip};PASSWORD=123456;USER ID=postgres;Pooling=True;Search Path=public";
if (Program.CurrentDbType == DbType.MySql)
{
connStr = $"server={ip};port=3306;user id=root;password=123456;database=sc_byd;Convert Zero Datetime=True;Allow Zero Datetime=True;Connection Timeout=10";
}
return GetDb(connStr);
}
private static SqlSugarScope GetDb(string connstr = "")
{
try
{
//用单例模式
var sugarDb = new SqlSugarScope(new ConnectionConfig()
{
ConnectionString = string.IsNullOrWhiteSpace(connstr) ? defaultConnStr : connstr,//连接符字串
DbType = Program.CurrentDbType, //数据库类型
IsAutoCloseConnection = true, //不设成true要手动close
},
db =>
{
//(A)全局生效配置点
//调试SQL事件可以删掉
db.Aop.OnLogExecuting = (sql, pars) =>
{
//LogHelper.WriteLog(sql);//输出sql,查看执行sql
};
});
if (Program.CurrentDbType == DbType.PostgreSQL)
{
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
AppContext.SetSwitch("Npgsql.DisableDateTimeInfinityConversions", true);
}
return sugarDb;
}
catch (Exception ex)
{
var msg = ex == null ? "连接数据库异常" : ex.Message;
LogHelper.WriteLog(msg);
return null;
}
}
}
}