批量執行sql腳本(dos,sqlcmd),實現數據庫升級,本地必須有數據庫

<img src="data:image/png;base64,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" alt="" />
<span style="color:#6666cc;">上面是軟件的界面,程序必須生成之後用管理員的 身份運行.exe文件,因爲此處運行的是dos命令,或者用管理員的身份與運行VS之後再打開程序也是可以的,這樣的好處是可以進行跟蹤調試。</span>
</pre><pre name="code" class="html"><span style="color:#6666cc;">代碼實現的功能是:將數據庫的腳本存放在該程序的debug下面存放在</span><span style="color: rgb(102, 102, 204); ">UpgradeScripts文件夾中,然後執行程序,輸入用戶名,密碼,數據源和升級模式,之後,完成數據庫的升級。
當然在執行時,腳本的格式必須是有的,和你數據庫中的表中存放的升級記錄中的表是一直的,這樣是最好的。
<img src="data:image/png;base64,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" alt="" /><img src="data:image/png;base64,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" alt="" />
</span>
<span style="color:#6666cc;">這樣做是因爲在下面我要覈對版本號,然後來確定要升級的腳本都有哪個。</span>
<span style="color:#6666cc;">此處獲取腳本名稱有一個很好的辦法,就是</span><span style="color: rgb(102, 102, 204); ">String[] fn = Directory.GetFiles("UpgradeScripts");這個 方法是用之後,fn中存放的就是該文件夾下所有的數據庫腳本的名字,而且是按照一定順序來進行排列的,這也就省掉了一些排序的功能。</span>
<span style="color: rgb(102, 102, 204); ">
</span>
<span style="color:#6666cc;">下面的重點還有一處是</span><pre name="code" class="html">string commondstr = "SQLCMD -U " + textBox1.Text + " -P " + textBox2.Text + " -S " + textBox3.Text + " -d master -i " + Application.StartupPath + "\\UpgradeScripts\\";
此處是dos命令,這樣實現的好處是,範圍就不會侷限在本地,因爲數據源是自己輸入的,所以很大程度的擴大了使用範圍。
</pre><pre name="code" class="html"><pre name="code" class="html" style="color: rgb(102, 102, 204); "> Application.StartupPath  這句話獲取的是當前執行程序的根目錄,知道debug下面的目錄,這樣方便了我們獲取路徑,這樣隨意軟件包放在哪裏都不會影響路徑的拼裝。

</pre><pre>
</pre><pre name="code" class="html">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Threading;
using Kyee.Utils;


namespace View
{
    public partial class DbUpgrade : UserControl
    {
        string[] sqlFileName = new string[0];//數組的初始化
        int[] sqlFlieCode = new int[0];
        string currentVerCode = "";//當前版本號E:\bedcard\source\牀頭卡集成管理平臺\牀頭卡集成管理平臺\View\bin\Debug\
        System.Data.SqlClient.SqlConnection sqlConn = new System.Data.SqlClient.SqlConnection();


        /// <summary>
        /// 主函數,程序入口
        /// </summary>
        public DbUpgrade()
        {
            InitializeComponent();
            saveDataRadio.Checked = true;
            modelPic.BackgroundImage = Image.FromFile(@"images/upgrade_model_pic.png");
            userNamePanel.BackgroundImage = Image.FromFile(@"images/upgrade_user_panel.png");
            userPwdPanel.BackgroundImage = Image.FromFile(@"images/upgrade_user_panel.png");
            dataSourcePanel.BackgroundImage = Image.FromFile(@"images/upgrade_user_panel.png");
            upgradePic.BackgroundImage = Image.FromFile(@"images/upgrade_left_pic.png");
        }


        /// <summary>
        /// 保留數據模式
        /// 升級模式的選擇問題
        /// 兩者只能選其一
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void saveDataRadio_CheckStateChanged(object sender, EventArgs e)
        {
            if (saveDataRadio.Checked)
            {
                newCreateRadio.Checked = false;
            }
            else
            {
                newCreateRadio.Checked = true;
            }
        }


        /// <summary>
        /// 重新創建模式
        /// 升級模式的選擇問題
        /// 兩者只能選其一
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void newCreateRadio_CheckStateChanged(object sender, EventArgs e)
        {
            if(newCreateRadio.Checked)
            {
               saveDataRadio.Checked = false;
            }
            else
            {
                saveDataRadio.Checked = true;
            }
        }


        /// <summary>
        /// 執行升級
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void upgradEexecutBt_Click(object sender, EventArgs e)
        {
            sqlFileName = Directory.GetFiles(Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("\\") - 3) + "components\\db\\scripts");


            if (userName.Text != "" && userPwd.Text != "" && dataSource.Text != "")
            {
                if (checkSqlConnection())
                {
                    if (saveDataRadio.Checked)
                    {
                        saveDataRadioUpgrade();
                    }
                    else if (newCreateRadio.Checked)
                    {
                        newCreateRadioUpgrade();
                        System.Data.SqlClient.SqlConnection myConn = new System.Data.SqlClient.SqlConnection();
                        myConn.ConnectionString = groupConString(dataSource.Text, "bedcardSystem", userName.Text, userPwd.Text);
                        myConn.Open();
                        writeVerCodeToConfig(myConn);
                    }
                    else
                    {
                        MessageBox.Show("請選擇一個升級模式!", "提示");
                        sqlConn.Close();
                    }
                }
            }
            else
            {
                MessageBox.Show("信息請填寫完整!", "提示");
                sqlConn.Close();
            }
        }


        /// </summary>
        /// <param name="source">服務器名稱</param>
        /// <param name="initialCatalog">數據庫</param>
        /// <param name="userID">登錄名</param>
        /// <param name="password">密碼</param>
        /// <returns>拼接後的連接字符串</returns>
        public string groupConString(string source, string initialCatalog, string userID, string password)
        {
            String connectionString = "";
            try
            {
                connectionString = "server=" + source + ";uid=" + userID + ";pwd=" + password + ";database=" + initialCatalog;
            }
            catch (Exception ex)
            {
                connectionString = "";
                throw ex;
            }
            return connectionString;
        }


        /// <summary>
        /// 說明:切換到當前已經存在的數據庫
        /// 檢查該數據庫中的升級記錄表是否存在
        /// 存在則進行“保留數據”升級
        /// 否則進行“重新創建”升級
        /// </summary>
        /// <returns></returns>
        private void upgrade(string databaseName, string source, string userID, string password)
        {
            try
            {
                string connectionString = groupConString(source, databaseName, userID, password);
                SqlConnection myConn = new SqlConnection();
                SqlDataReader sdataReader = null;
                myConn = new SqlConnection(connectionString);
                string getDbaseNamesSqlStr = "SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[BEDCARD_UPGRADE_RECORD]') AND type in (N'U')";
                SqlCommand selectDatabaseNamesCommand = new SqlCommand(getDbaseNamesSqlStr, myConn);
                myConn.Open();
                sdataReader = selectDatabaseNamesCommand.ExecuteReader();
                if (sdataReader.Read())
                {
                    //若判斷當前爲服務器數據庫,則檢查版本信息
                    getCurrentVerCode(connectionString);
                    string name;
                    int i = 0;
                    for (i = 0; i < sqlFileName.Length; i++)
                    {
                        name = getSqlFileName(i);
                        if (name == currentVerCode)       //當前版本
                        {
                            break;
                        }
                    }
                    try
                    {
                        sdataReader.Close();
                        for (int k = i + 1; k < sqlFileName.Length; k++)
                        {
                            importSqlFile(sqlFileName[k], 10);
                        }
                        writeVerCodeToConfig(myConn);
                        MessageBox.Show("數據庫升級完成(保留原數據)", "提示");
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
                else
                {
                    if (MessageBox.Show("該版本太低,沒有升級記錄表,建議確定手動升級,是否進行手動升級?", "Confirm Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.OK)
                    {
                        System.Environment.Exit(0);
                    }
                    else
                    {
                        newCreateRadioUpgrade();
                        writeVerCodeToConfig(myConn);
                        MessageBox.Show("升級完成(沒有記錄表,數據庫被還原)", "提示");
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }


        /// <summary> 
        /// 如果設定爲0,則無限等待</param> 
        /// 導入腳本文件
        /// 執行腳本
        /// <summary> 
        public void importSqlFile(string filePath, int seconds)
        {
            string cmdStr = "SQLCMD -U " + userName.Text + " -P " + userPwd.Text + " -S " + dataSource.Text + " -d master -i "+ filePath;
            string output = ""; //輸出字符串 
            if (filePath != null && !filePath.Equals(""))
            {
                Process process = new Process();//創建進程對象 
                ProcessStartInfo startInfo = new ProcessStartInfo();
                startInfo.FileName = "cmd.exe";//設定需要執行的命令 
                startInfo.Arguments = "/C " + cmdStr;//“/C”表示執行完命令後馬上退出 
                startInfo.UseShellExecute = false;//不使用系統外殼程序啓動 
                startInfo.RedirectStandardInput = false;//不重定向輸入 
                startInfo.RedirectStandardOutput = true; //重定向輸出 
                startInfo.CreateNoWindow = true;//不創建窗口 
                process.StartInfo = startInfo;
                try
                {
                    if (process.Start())//開始進程 
                    {
                        if (seconds == 0)
                        {
                            process.WaitForExit();//這裏無限等待進程結束 
                        }
                        else
                        {
                            process.WaitForExit(seconds); //等待進程結束,等待時間爲指定的毫秒 
                        }
                        output = process.StandardOutput.ReadToEnd();//讀取進程的輸出 
                    }
                    Console.WriteLine(output);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    if (process != null)
                    {
                        process.Close();
                    }
                }
            }
        }


        /// <summary>
        /// 獲取當前數據庫版本信息
        /// </summary>
        /// <return>當前版本號,並賦值給全局變量currentVerCode</return>
        public void getCurrentVerCode(string connectionString)
        {
            string sql = "select UPGRADE_VERSION from BEDCARD_UPGRADE_RECORD order by UPGRADE_VERSION desc";
            SqlConnection con = new SqlConnection(connectionString);
            con.Open();
            SqlCommand cmd = new SqlCommand(sql, con);
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                currentVerCode = dr["UPGRADE_VERSION"].ToString();
                string endtionname = "";
                string changlable = currentVerCode;
                char[] change;
                change = changlable.ToCharArray();
                int j = 0;
                for (int i = 0; i < changlable.Length; i++)
                {
                    if (change[i] >= '0' && change[i] <= '9')
                    {
                        endtionname += change[i];
                        j++;
                    }
                }
                if (endtionname.Length == 2)
                {
                    endtionname += '0';
                }
                currentVerCode = endtionname;


            }
            con.Close();
        }


        /// <summary>
        /// <returns>截取出的腳本中的版本號</reurns>
        /// </summary>
        /// <param name="n"></param>
        /// <returns>腳本中的版本號</reurns>
        public string getSqlFileName(int index)
        {
            string name = "";
            char[] nameindex;
            nameindex = sqlFileName[index].Substring(sqlFileName[index].LastIndexOf("\\")).ToCharArray();
            int j = 0;
            for (int i = 0; i < nameindex.Length; i++)
            {
                if (nameindex[i] >= '0' && nameindex[i] <= '9')
                {
                    name += nameindex[i];
                    j++;
                }
            }
            if (name.Length == 2)
            {
                name += '0';
            }
            return name;
        }


        /// <summary>
        /// <returns>判斷數據庫是否鏈接成功</reurns>
        /// </summary>
        /// <param name="n"></param>
        /// <returns></reurns>
        public bool checkSqlConnection()
        {
            sqlConn.ConnectionString = groupConString(dataSource.Text, "master", userName.Text, userPwd.Text);
            try
            {
                sqlConn.Open();
                return true;
            }
            catch
            {
                MessageBox.Show("鏈接失敗!", "提示!");
                return false;
            }
        }


        /// <summary>
        /// <returns>保留數據模式的升級</reurns>
        /// </summary>
        /// <param name="n"></param>
        /// <returns></reurns>
        public void saveDataRadioUpgrade()
        {
            SqlDataReader sdataReader = null;
            string getDbaseNamesSqlStr = "SELECT * FROM   master.dbo.sysdatabases where [name]='bedcardSystem'";
            SqlCommand selectDatabaseNamesCommand = new SqlCommand(getDbaseNamesSqlStr, sqlConn);
            sdataReader = selectDatabaseNamesCommand.ExecuteReader();
            if (sdataReader.Read())
            {
                MessageBox.Show("數據庫已經存在!");
                upgrade("bedcardSystem", dataSource.Text, userName.Text, userPwd.Text);
                sqlConn.Close();
            }
            else
            {
                MessageBox.Show("數據庫不存在,執行重新創建模式!");


                for (int k = 0; k < sqlFileName.Length; k++)
                {
                    importSqlFile(sqlFileName[k], 10);
                }
                sqlConn.Close();
                System.Data.SqlClient.SqlConnection myConn = new System.Data.SqlClient.SqlConnection();
                myConn.ConnectionString = groupConString(dataSource.Text, "bedcardSystem", userName.Text, userPwd.Text);
                myConn.Open();
                writeVerCodeToConfig(myConn);
                MessageBox.Show("數據庫創建成功!");
            }
        }


        /// <summary>
        /// <returns>重新創建模式的升級</reurns>
        /// </summary>
        /// <param name="n"></param>
        /// <returns></reurns>
        public void newCreateRadioUpgrade()
        {
            for (int k = 0; k < sqlFileName.Length; k++)
            {
                importSqlFile(sqlFileName[k], 100);


            }
            MessageBox.Show("重新創建升級模式完成!", "提示");
            sqlConn.Close();
        }


        /// <summary>
        /// <returns>讀取升級成功後的版本號,寫入db.congig文件</reurns>
        /// </summary>
        /// <param name="n"></param>
        /// <returns></reurns>
        public void writeVerCodeToConfig(SqlConnection scon)
        {
            string sql2 = "select UPGRADE_VERSION from BEDCARD_UPGRADE_RECORD order by UPGRADE_VERSION desc";
            string key = "VER_CODE";
            string cfgPath = "userdata\\data\\db.config";
            SqlCommand cmd = new SqlCommand(sql2, scon);
            SqlDataReader dr1 = cmd.ExecuteReader();
            if (dr1.Read())
            {
                ConfigUtil.WriteWebConfigToSetup(key, dr1["UPGRADE_VERSION"].ToString(), cfgPath);
            }
            scon.Close();
        }


        private void upgradeBottom_Click(object sender, EventArgs e)
        {


        }
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章