附加数据库

        /// <summary>
        /// 附加数据库
        /// </summary>
        /// <param name="strSql"></param>
        /// <param name="DataName"></param>
        /// <param name="strMdf"></param>
        /// <param name="strLdf"></param>
        /// <param name="path"></param>
        private void CreateDataBase(string strSql, string DataName, string strMdf, string strLdf, string path)
        {
            SqlConnection myConn = new SqlConnection(strSql);
            String str = null;
            try
            {
                str = " EXEC sp_attach_db @dbname='" + DataName + "',@filename1='" + strMdf + "',@filename2='" + strLdf + "'";
                SqlCommand myCommand = new SqlCommand(str, myConn);
                myConn.Open();
                myCommand.ExecuteNonQuery();
               DialogResult r= MessageBox.Show("数据库安装成功!点击确定继续");//需Using System.Windows.Forms
               if (r== DialogResult.OK)
               {
                   UpdateApp(txtLoginName.Text.Trim(), txtLoinPwd.Text.Trim());
                   IsShowNewForm = true;
                   this.Close();
               }
            }
            catch (Exception e)
            {
                MessageBox.Show("数据库安装失败!" + e.Message + "\n\n" + "您可以手动附加数据");
                System.Diagnostics.Process.Start(path);//打开安装目录
            }
            finally
            {
                myConn.Close();
                this.Close();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog FBD = new FolderBrowserDialog();
            FBD.SelectedPath = "选择你要存放目录的路径";
            if (FBD.ShowDialog() == DialogResult.OK)
            {
                txtPath.Text = FBD.SelectedPath;
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (IsFree())
            {
                string server = ".";//服务器名称
                string uid = txtLoginName.Text.Trim().ToString();//SQlServer用户名
                string pwd = txtLoinPwd.Text.Trim().ToString();//密码
                string path = txtPath.Text.Trim().ToString();//安装目录
                string strSql = "server=" + server + ";uid=" + uid + ";pwd=" + pwd + ";database=master";//连接数据库字符串
                string DataName = "HeatingFS";//数据库名
                string strMdf = path + @"\\Heating_Data.MDF";//MDF文件路径,这里需注意文件名要与刚添加的数据库文件名一样!
                string strLdf = path + @"\\Heating_Log.LDF";//LDF文件路径
                this.CreateDataBase(strSql, DataName, strMdf, strLdf, path);//开始创建数据库

            }
        }

        public static void UpdateApp(string LoginName, string LoginPwd)
        {
            Configuration appConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            if (!string.IsNullOrEmpty(LoginName) && !string.IsNullOrEmpty(LoginPwd))
            {
                appConfig.AppSettings.Settings["sqlcon"].Value = "server=.;uid=" + LoginName + ";pwd=" + LoginPwd + ";database=HeatingFS";
            }
            appConfig.Save();

        }

        private void frmCreateDB_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (IsShowNewForm)
            {
                System.Diagnostics.Process.Start(Application.StartupPath + "\\SJTD_HDYX.exe"); 
            }
        }
原文地址:https://www.cnblogs.com/Iyce/p/2738777.html