⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbconfigform.cs

📁 这个源码是移动的基站接收源码
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.Common;
using System.Data.Sql;
using System.Data.SqlClient;
using Microsoft.Practices.EnterpriseLibrary;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Data.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Data.Sql;
using System.Configuration;
using System.Xml;


namespace GPSSerialPortData
{
    public partial class DBConfigForm : Form
    {
        public DBConfigForm()
        {
            InitializeComponent();
            this.FormBorderStyle = FormBorderStyle.FixedDialog;
            btnSave.Enabled = false;
        }

        private void btnTest_Click(object sender, EventArgs e)
        {
            DbConnection conn = new SqlConnection();
          
            conn.ConnectionString = "Database=soft_sailingservice;Server="+tbServer.Text+";user id="+tbUserId.Text+";pwd="+tbPassword.Text+";Integrated Security=False;";
            try
            {
                conn.Open();
                MessageBox.Show("连接成功", "提示");
            }
            catch
            {
                MessageBox.Show("不能建立数据库连接", "提示");
                return;
            }
            finally
            {
                conn.Close();
            }
            btnSave.Enabled = true;
            
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            string connstr = "Database=soft_sailingservice;Server=" + tbServer.Text + ";user id=" + tbUserId.Text + ";pwd=" + tbPassword.Text + ";Integrated Security=False;";
            SaveConfig(connstr);
            
            this.DialogResult = DialogResult.Yes;
            //Application.Restart();
            //if (MessageBox.Show("设置成功,要应用设置请从新启动程序\n是否重启程序?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            //{
            //    Application.Restart();
            //}
            //else
            //{
            //    this.Close();
            //}
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void DBConfigForm_Load(object sender, EventArgs e)
        {
           
            groupBox1.Visible = false;
            groupBox2.Visible = true;
            groupBox2.Dock = DockStyle.Fill;
            backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
            backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker1_RunWorkerCompleted);
            backgroundWorker1.RunWorkerAsync();
        }

        void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (e.Result.ToString().ToLower() == "true")
            {
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
            else
            {
                groupBox2.Visible = false;
                groupBox1.Visible = true;
                groupBox1.Dock = DockStyle.Fill;
                string[] connstr = ConfigurationManager.ConnectionStrings["SailingServiceDbConnString"].ConnectionString.Split(';');
                tbServer.Text = connstr[1].Substring(7, connstr[1].Length - 7);
                tbUserId.Text = connstr[2].Substring(8, connstr[2].Length - 8);
                tbPassword.Text = connstr[3].Substring(4, connstr[3].Length - 4);
                MessageBox.Show("不能建立数据库连接\n请配置数据库", "提示");
            }           
        }

        void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            DbConnection conn = new SqlConnection();

            conn.ConnectionString = ConfigurationManager.ConnectionStrings["SailingServiceDbConnString"].ConnectionString;
            try
            {
                conn.Open();
                e.Result = true;
            }
            catch
            {
                e.Result = false;
               
            }
            finally
            {
                conn.Close();
            }

        }
        private delegate void Callback();
        private void TestConnection()
        {

            DbConnection conn = new SqlConnection();

            conn.ConnectionString = ConfigurationManager.ConnectionStrings["SailingServiceDbConnString"].ConnectionString;
            try
            {
                conn.Open();
                this.Close();
                this.DialogResult = DialogResult.OK;
            }
            catch
            {

                MessageBox.Show("不能建立数据库连接\n请配置数据库", "提示");
                groupBox2.Visible = false;
                groupBox1.Visible = true;
                groupBox1.Dock = DockStyle.Fill;
            }
            finally
            {
                conn.Close();
            }


            string[] connstr = ConfigurationManager.ConnectionStrings["SailingServiceDbConnString"].ConnectionString.Split(';');
            tbServer.Text = connstr[1].Substring(7, connstr[1].Length - 7);
            tbUserId.Text = connstr[2].Substring(8, connstr[2].Length - 8);
            tbPassword.Text = connstr[3].Substring(4, connstr[3].Length - 4);
        }
        private void btnApply_Click(object sender, EventArgs e)
        {
            string connstr = "Database=soft_sailingservice;Server=" + tbServer.Text + ";user id=" + tbUserId.Text + ";pwd=" + tbPassword.Text + ";Integrated Security=False;"; 
            SaveConfig(connstr);
            //if (MessageBox.Show("设置成功,要应用设置请从新启动程序\n是否重启程序?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)== DialogResult.Yes)
            //{
            //    Application.Restart();
            //}
            #region MyRegion
           
            //// 打开当前文件的配置文件
            //Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            //string na = config.FilePath;
            //// 干掉原先的配置
            //int a = config.Sections.Count;
            //ConfigurationSection section1 = config.Sections["connectionStrings"];
            //string t = section1.SectionInformation.GetRawXml();
            //a = config.Sections.Count;
            ////config.Save();
            //config = ConfigurationManager.OpenExeConfiguration(System.Windows.Forms.Application.ExecutablePath);
            //ConfigDataClass1 configData1= new ConfigDataClass1();
            //// 把新的配置更新上去
            //ConfigurationSection section2 = ConfigurationManager.GetSection("connectionStrings") as ConfigurationSection;
            
            //config.Sections.Add("connectionStrings2", configData1);
            //// 保存配置文件
            //config.Save();

            #endregion
        }

        private void SaveConfig(string ConnenctionString)
        {
            XmlDocument doc = new XmlDocument();
            //获得配置文件的全路径
            string strFileName = System.Windows.Forms.Application.ExecutablePath+".config";
            doc.Load(strFileName);
            //找出名称为“add”的所有元素
            XmlNodeList nodes = doc.GetElementsByTagName("add");
            for (int i = 0; i < nodes.Count; i++)
            {
                //获得将当前元素的key属性
                XmlAttribute att = nodes[i].Attributes["name"];
                //根据元素的第一个属性来判断当前的元素是不是目标元素
                if (att != null)
                {
                    if (att.Value == "SailingServiceDbConnString")
                    {
                        //对目标元素中的第二个属性赋值
                        att = nodes[i].Attributes["connectionString"];
                        att.Value = ConnenctionString;
                        break;
                    }
                }
            }
            //保存上面的修改
            doc.Save(strFileName);
            
        } 

    }

    class ConfigDataClass : System.Configuration.ConfigurationSection
    {
        public ConfigDataClass()
        { }

        [ConfigurationProperty("Database")]
        public string Database
        {
            get { return this["Database"].ToString(); }
            set { this["Database"] = value; }
        }

        [ConfigurationProperty("Server")]
        public string Server
        {
            get { return this["Server"].ToString(); }
            set { this["Server"] = value; }
        }


        [ConfigurationProperty("userid")]
        public string UserId
        {
            get { return this["userid"].ToString(); }
            set { this["userid"] = value; }
        }

        [ConfigurationProperty("password")]
        public string Password
        {
            get { return this["password"].ToString(); }
            set { this["password"] = value; }
        }

        public override string ToString()
        {
            StringBuilder info = new StringBuilder();
            info.AppendFormat("<add name=\"SailingServiceDbConnString\" providerName=\"System.Data.SqlClient\"  connectionString=\"database={0};server={1};user id = {2};pwd = {3};\" />", Database, Server, UserId, Password);
            return info.ToString();
        }
    }

    class ConfigDataClass1 : System.Configuration.ConfigurationSection
    {
        public ConfigDataClass1()
        { }
    

        public override string ToString()
        {
            StringBuilder info = new StringBuilder();
            info.Append("a=b");
            return info.ToString();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -