基类
namespace AssemblyLine.Helpers.SQL
{
public class SqlBase
{
public virtual bool Open()
{
return false;
}
}
}
SqlServer帮助类
using InformationAcquisitionSystem.Helpers.SQL;
using Newtonsoft.Json;
using SqlSugar;
using System.ComponentModel;
using System.Linq;
namespace AssemblyLine.Helpers.SQL
{
[JsonObject(MemberSerialization.OptIn)]
public class DbHelperSqlServer : SqlBase
{
private SqlSugarScope _sqlSugarClient;
private string _server;
private string _database;
private string _user;
private string _password;
[JsonProperty]
[Category("连接属性"), DisplayName("服务器地址")]
public string Server { get => _server; set => _server = value; }
[JsonProperty]
[Category("连接属性"), DisplayName("数据库名称")]
public string Database { get => _database; set => _database = value; }
[JsonProperty]
[Category("连接属性"), DisplayName("数据库用户")]
public string User { get => _user; set => _user = value; }
[JsonProperty]
[PasswordPropertyText(true)]
[Category("连接属性"), DisplayName("数据库密码")]
public string Password { get => _password; set => _password = value; }
[Browsable(false)]
public SqlSugarScope SqlSugarClient { get => _sqlSugarClient; set => _sqlSugarClient = value; }
public override bool Open()
{
try
{
_sqlSugarClient = new SqlSugarScope(new ConnectionConfig
{
// 连接超时3S
ConnectionString = $"server={_server};Initial Catalog={_database};uid={_user};pwd={_password};",
DbType = DbType.SqlServer,
IsAutoCloseConnection = false,
InitKeyType = InitKeyType.Attribute
});
_sqlSugarClient.Open();
_sqlSugarClient.Aop.OnLogExecuting = (sql, pars) =>
{
//Console.WriteLine(sql); // 输出sql
};
// Code First:可以指定表格类所在的命名空间,然后判断数据库中是否存在该表,不存在则自动创建
string tableNamespace = "AssemblyLine.Models.Tables";
foreach (var type in GetType().Assembly.GetTypes().Where(c =>
c.Namespace != null && c.IsClass && c.IsPublic &&
c.Namespace.Equals(tableNamespace)))
{
if (_sqlSugarClient.DbMaintenance.GetTableInfoList(false).Any(c => c.Name.Equals(type.Name)))
continue;
_sqlSugarClient.CodeFirst.SetStringDefaultLength(200).InitTables(type);
}
return true;
}
catch
{
return false;
}
}
}
}
使用
DbHelperSqlServer sqlServer = new DbHelperSqlServer()
{
Server = "127.0.0.1",
Database = "CoreyV2",
User = "sa",
Password = "asrs,123"
};
if (!sqlServer.Open()) throw new Exception("数据库连接失败");