using System; using System.Linq; using System.Text; namespace Easy4net.Variety.MSSQL { /// /// SQL数据库连接参数配置类 /// public class SqlConnectionParam { /// /// 数据库连接字符串 /// internal static string ConnectionString { get; private set; } /// /// 数据库主机地址 /// public string DbHost { get; private set; } /// /// 数据库端口 /// public string DbPort { get; private set; } /// /// 数据库名 /// public string DbName { get; private set; } /// /// 数据库用户名 /// public string DbUser { get; private set; } /// /// 数据库密码 /// public string DbPassword { get; private set; } /// /// 最小缓存池大小,空则未配置 /// public string DbMinPoolSize { get; private set; } /// /// 最大缓存池大小,空则未配置 /// public string DbMaxPoolSize { get; private set; } /// /// 字符集设置,空则未配置 /// public string DbCharset { get; private set; } /// /// 新建一个MSSQL链接参数对象 /// /// 数据库主机地址 /// 端口号 /// 数据库名 /// 用户名 /// 密码 public SqlConnectionParam(string aHost, string aPort, string aName, string aUser, string aPassword) { this.DbHost = aHost; this.DbPort = aPort; this.DbName = aName; this.DbUser = aUser; this.DbPassword = aPassword; } /// /// 新建一个MSSQL链接参数对象 /// /// 数据库主机地址 /// 端口号 /// 数据库名 /// 用户名 /// 密码 /// 字符集 public SqlConnectionParam(string aHost, string aPort, string aName, string aUser, string aPassword, string aCharset) : this(aHost, aPort, aName, aUser, aPassword) { this.DbCharset = aCharset; } /// /// 新建一个MSSQL链接参数对象 /// /// 数据库主机地址 /// 端口号 /// 数据库名 /// 用户名 /// 密码 /// 最小缓存池大小 /// 最大缓存池大小 public SqlConnectionParam(string aHost, string aPort, string aName, string aUser, string aPassword, string aMinPool, string aMaxPool) : this(aHost, aPort, aName, aUser, aPassword) { this.DbMinPoolSize = aMinPool; this.DbMaxPoolSize = aMaxPool; } /// /// 新建一个MSSQL链接参数对象 /// /// 数据库主机地址 /// 端口号 /// 数据库名 /// 用户名 /// 密码 /// 最小缓存池大小 /// 最大缓存池大小 /// 字符集 public SqlConnectionParam(string aHost, string aPort, string aName, string aUser, string aPassword, string aMinPool, string aMaxPool, string aCharset) : this(aHost, aPort, aName, aUser, aPassword, aMinPool, aMaxPool) { this.DbCharset = aCharset; } /// /// 将当前参数设置为全局连接参数 /// public void SetGlobal() { // 更新连接字符串 ConnectionString = GetConnectionString(this); } /// /// 输出当前连接参数字符串 /// /// public override string ToString() { return GetConnectionString(this); } /// /// 根据当前的变量生成链接字符串 /// /// 数据库连接参数 /// 连接字符串 internal static string GetConnectionString(SqlConnectionParam aParam) { StringBuilder tmp_sb = new StringBuilder(); tmp_sb.Append("Data Source=").Append(aParam.DbHost); if (!String.IsNullOrEmpty(aParam.DbPort)) { tmp_sb.Append(",").Append(aParam.DbPort); } tmp_sb.Append(";"); tmp_sb.AppendFormat("User ID={0};", aParam.DbUser); // 解密密码 tmp_sb.AppendFormat("Password={0};", aParam.DbPassword); tmp_sb.AppendFormat("DataBase={0};", aParam.DbName); if (!String.IsNullOrEmpty(aParam.DbMinPoolSize)) { tmp_sb.AppendFormat("Min Pool Size={0};", aParam.DbMinPoolSize); } if (!String.IsNullOrEmpty(aParam.DbMaxPoolSize)) { tmp_sb.AppendFormat("Max Pool Size={0};", aParam.DbMaxPoolSize); } if (!String.IsNullOrEmpty(aParam.DbCharset)) { tmp_sb.AppendFormat("charset={0};", aParam.DbCharset); } return tmp_sb.ToString(); } } }