using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MOKA_Factory_Tools.Database { public class ConnectionParameters { #if DEBUG public ConnectionParameters() { DatabaseServer = @"DESKTOP-71AIDNV\SQLEXPRESS"; DatabaseName = "MES"; connectionStringTrusted = string.Format(_msdbconnect_trusted, DatabaseServer, DatabaseName); } #endif #region 连接串 // 无端口号; private const string _msdbconnect = "Data Source={0};Initial Catalog={1};User ID={2};Password={3}"; // 有端口号; private const string _msdbconnect_port = "Data Source={0},{1};Initial Catalog={2};User ID={3};Password={4}"; // windows信任连接; private const string _msdbconnect_trusted = "server={0};database={1};Trusted_Connection=SSPI"; #endregion #region 私有变量; /// /// 数据库连接串; /// private string connectionString = ""; private string connectionStringTrusted = ""; #endregion #region 公共属性; /// /// 数据库服务器; /// public string DatabaseServer { get; set; } = "10.126.64.131"; /// /// 数据库账号; /// public string DatabaseAccount { get; set; } = "XMUpdate"; /// /// 数据库密码; /// public string DatabasePassword { get; set; } = "695Xm@123#"; /// /// 数据库名称; /// public string DatabaseName { get; set; } = "MESOtherData"; /// /// 数据库端口号; /// public uint DatabasePortNumber { get; set; } = 0; /// /// 连接超时值; /// public uint ConnectTimeout { get; set; } = 3000; [JsonIgnore] /// /// 是否设置了数据库连接参数; /// public bool IsSetParameters { get; private set; } = false; [JsonIgnore] /// /// 数据库连接串; /// public string ConnectionString { get { #if DEBUG return connectionStringTrusted; #else if (IsSetParameters) return connectionString; else { SetConnectParameters(); return connectionString; } #endif } } [JsonIgnore] public string ConnectionStringTrusted { get { if (IsSetParameters) return connectionStringTrusted; else { SetConnectParameters(); return connectionStringTrusted; } } } #endregion public void SetConnectParameters() { try { // 标记连接参数已设置; IsSetParameters = true; // 生成默认的连接串; connectionString = DatabasePortNumber == 0 ? string.Format(_msdbconnect, DatabaseServer, DatabaseName, DatabaseAccount, DatabasePassword) : string.Format(_msdbconnect_port, DatabaseServer, DatabasePortNumber, DatabaseName, DatabaseAccount, DatabasePassword); connectionStringTrusted = string.Format(_msdbconnect_trusted, DatabaseServer, DatabaseName); } catch { throw; } } public void SetConnectParameters(string databaseServer, string databaseName, string databaseAccount, string databasePassword, uint databasePortNumber=0) { DatabaseServer = databaseServer; DatabaseName = databaseName; DatabaseAccount = databaseAccount; DatabasePassword = databasePassword; DatabasePortNumber = databasePortNumber; // 标记连接参数已设置; IsSetParameters = true; try { // 生成默认的连接串; connectionString = DatabasePortNumber == 0 ? string.Format(_msdbconnect, DatabaseServer, DatabaseName, DatabaseAccount, DatabasePassword) : string.Format(_msdbconnect_port, DatabaseServer, DatabasePortNumber, DatabaseName, DatabaseAccount, DatabasePassword); connectionStringTrusted = string.Format(_msdbconnect_trusted, DatabaseServer, DatabaseName); } catch { throw; } } } }