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();
}
}
}