public class DBConfigVariable
{
///
/// 读取配置文件连接数据库串
///
///
public void ReadAppConfig(int i)
{
string strDataSouce = "";
string strUserName = "";
string strUserPassword = "";
string connstr = "";
//生产管理连接串
if (i == 1)
{
connstr = System.Configuration.ConfigurationManager.AppSettings["OracleConn"].ToString();
}
//1库连接串
if (i == 2)
{
connstr = System.Configuration.ConfigurationManager.AppSettings["OracleConnTool"].ToString();
}
//2库连接串
if (i == 3)
{
connstr = System.Configuration.ConfigurationManager.AppSettings["OracleConnWMS"].ToString();
}
//数据源
strDataSouce = connstr.Split(';')[0].ToString();
DBConfig.DataSource = strDataSouce.Substring(12);
//数据库用户名
strUserName = connstr.Split(';')[1].Trim();
DBConfig.UserName = strUserName.Substring(8);
//用户密码
strUserPassword = connstr.Split(';')[2].Trim();
DBConfig.Password = strUserPassword.Substring(9);
} /// /// 接收界面上修改的数据库配置,并组织好newKey.更新app.config文件 /// /// public void UpdateDataBaseConfig(int i) { string newKeyValue = ""; string newKey = ""; newKeyValue = string.Format("Data Source={0};User ID={1};Password={2};Persist Security Info=True;", DBConfig.DataSource.ToString(), DBConfig.UserName.ToString(), DBConfig.Password.ToString()); if (i == 1) { newKey = "OracleConn"; UpdateConnectionStringsConfig("MESAppProject.Properties.Settings.ConnectionString1", newKeyValue, "System.Data.OracleClient"); } if (i == 2) { newKey = "OracleConnTool"; } if (i == 3) { newKey = "OracleConnWMS"; } UpdateAppConfig(i, newKey, newKeyValue); } /// /// 修改数据库连接串 /// /// private void UpdateAppConfig(int i,string newKey,string newValue) { bool isModifield = false; foreach (string key in System.Configuration.ConfigurationManager.AppSettings) { if (key == newKey) { isModifield = true; } } Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); if (isModifield) { config.AppSettings.Settings.Remove(newKey); } config.AppSettings.Settings.Add(newKey, newValue); config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); } /// /// 更新connectionStrings配置节 /// /// 连接字符串名称 /// 连接字符串内容 /// 数据提供程序名称 private static void UpdateConnectionStringsConfig(string newName,string newConString,string newProviderName) { bool isModified = false; //记录连接串是否已经存在 //如果要更改的连接串已经存在 if (ConfigurationManager.ConnectionStrings[newName] !=null) { isModified = true; } //新建一个连接字符串实例 ConnectionStringSettings mySettings = new ConnectionStringSettings(newName, newConString, newProviderName); //打开可执行的配置文件*.exe.config Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); //如果连接串已经存在,首先删除它 if(isModified) { config.ConnectionStrings.ConnectionStrings.Remove(newName); } //将新的连接串添加到配置文件中 config.ConnectionStrings.ConnectionStrings.Add(mySettings); //保存对配置文件所作的更改 config.Save(ConfigurationSaveMode.Modified); //强制重新载入配置文件的ConnectionStrings配置节 ConfigurationManager.RefreshSection("ConnectionStrings"); } /// /// 数据库连接变量 /// public static class DBConfig { public static string DataSource; public static string GetDataSource { get { return DataSource; } } public static string SetDataSource { set { DataSource = value; } } public static string UserName; public static string GetUserName { get { return UserName; } } public static string SetUserName { set { UserName = value; } } public static string Password; public static string GetPassword { get { return Password; } } public static string SetPassword { set { Password = value; } } } }