您的位置:首页 > 数据库 > Oracle

程序中Oracle数据库配置

2012-09-01 16:17 218 查看
 public class DBConfigVariable

    {

        /// <summary>

        /// 读取配置文件连接数据库串

        /// </summary>

        /// <param name="i"></param>

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

       /// <summary>

       /// 接收界面上修改的数据库配置,并组织好newKey.更新app.config文件

       /// </summary>

       /// <param name="i"></param>

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

       }

       /// <summary>

       /// 修改数据库连接串

       /// </summary>

       /// <param name="i"></param>

        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");

        }

       /// <summary>

       /// 更新connectionStrings配置节

       /// </summary>

       /// <param name="newName">连接字符串名称</param>

       /// <param name="newConString">连接字符串内容</param>

       /// <param name="newProviderName">数据提供程序名称</param>

        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");

        }

        /// <summary>

        /// 数据库连接变量

        /// </summary>

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

            }

        }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息