用户第一次发布、或数据库信息改了后能可进入配置页面设置连接数据库的用户、密码、连接串名,同时对其加密

解决方案 »

  1.   

            public bool IsConnecd
            {
                get { return isConnecd; }
                set { isConnecd = value; }
            }
            private bool isConnecd = false;
            private void btn_Config_Click(object sender, EventArgs e)
            {
                DataConnectionDialog dlg = new DataConnectionDialog();
                dlg.DataSources.Add(DataSource.SqlDataSource);
                dlg.SelectedDataSource = DataSource.SqlDataSource;
                dlg.SelectedDataProvider = DataProvider.SqlDataProvider;
                //dlg.ConnectionString = ZooSystemUpdate.Properties.Settings.Default.ZooDataConnectString;
                dlg.ConnectionString = ConfigurationManager.AppSettings["connectstring"].ToString().Trim();
                if (DataConnectionDialog.Show(dlg, this) == DialogResult.OK)
                {
                    string abc = ConfigurationManager.AppSettings["connectstring"].ToString().Trim();
                    //判断是否能连接上数据库
                    ConfigurationManager.AppSettings["connectstring"] = dlg.ConnectionString;
                    Manage.DataConnect da = new Manage.DataConnect();
                    if (da.IsConnect())
                    {                    string miwen = DESEncrypt.Encrypt(dlg.ConnectionString);
                        SetKeyValue("connectstring",miwen);
                        IsConnecd = true;
                        this.Close();
                    }
                    else
                    {
                        ConfigurationManager.AppSettings["connectstring"] =abc;
                    }
                }
            }
            //// <summary>
            /// 设置连接字符串
            /// </summary>
            /// <param name="AppKey"></param>
            /// <param name="AppValue"></param>
            private void SetKeyValue(string AppKey, string AppValue)
            {
                XmlDocument xDoc = new XmlDocument();
                xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config");            XmlNode xNode;
                XmlElement xElem1;
                XmlElement xElem2;            xNode = xDoc.SelectSingleNode("//appSettings");            xElem1 = (XmlElement)xNode.SelectSingleNode("//add[@key='" + AppKey + "']");
                if (xElem1 != null) xElem1.SetAttribute("value", AppValue);
                else
                {
                    xElem2 = xDoc.CreateElement("add");
                    xElem2.SetAttribute("key", AppKey);
                    xElem2.SetAttribute("value", AppValue);
                    xNode.AppendChild(xElem2);
                }
                xDoc.Save(System.Windows.Forms.Application.ExecutablePath + ".config");
            }
            private void btn_Exit_Click(object sender, EventArgs e)
            {
                this.Close();
            }
        }
    上面是把数据库配置修改到config文件的方法,DESEncrypt是DES加密解密类,网上很多源码的
      

  2.   

      
    字符串就放在web.config文件中<connectionStrings>    
        <add name="test" connectionString="test" />
     </connectionStrings>