C# 還原SQL資料庫(非預存程序方式)

來源:互聯網
上載者:User

標籤:winform   blog   io   os   ar   for   檔案   資料   div   

Winform的代碼,最好是在資料所在電腦上運行代碼,不然會因為許可權問題導致失敗。

Database Backup:

            SqlConnection con = new SqlConnection("Data Source=.;;Initial Catalog=DB_Test;User ID=sa;Password=sa");            string sql = "backup database DB_Test to disk= ‘c:\\aVb.bak‘";            con.Open();            if (!File.Exists("c:\\aa.bak"))            {                SqlCommand com = new SqlCommand(sql, con);                com.ExecuteNonQuery();      //執行sql語句                   lblmessage.Text = "系統資訊:備份成功!";            }            else            {                lblmessage.Text = "系統資訊:檔案已存在!";            } 

 

資料庫還原:

            //引用SQLDMO.dll,SQLDMO由Microsoft   SQL   Server內建的SQLDMO.dll提供,SQLDMO.dll是一個COM對象            SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass();            try            {                svr.Connect("192.168.89.20", "sa", "Aa123456");                //取得所有的進程列表                SQLDMO.QueryResults qr = svr.EnumProcesses(-1);                int iColPIDNum = -1;                int iColDbName = -1;                //找到和要恢複資料庫相關的進程                for (int i = 1; i <= qr.Columns; i++)                {                    string strName = qr.get_ColumnName(i);                    if (strName.ToUpper().Trim() == "SPID")                    {                        iColPIDNum = i;                    }                    else if (strName.ToUpper().Trim() == "DBNAME")                    {                        iColDbName = i;                    }                    if (iColPIDNum != -1 && iColDbName != -1)                        break;                }                //將相關進程殺死                for (int i = 1; i <= qr.Rows; i++)                {                    int lPID = qr.GetColumnLong(i, iColPIDNum);                    string strDBName = qr.GetColumnString(i, iColDbName);                    if (strDBName.ToUpper() == strDbName.ToUpper())                        svr.KillProcess(lPID);                }                SQLDMO.Restore res = new SQLDMO.RestoreClass();                res.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;                res.Files = strFileName;                res.Database = strDbName;                res.FileNumber = 1;                res.ReplaceDatabase = true;                res.SQLRestore(svr);                return true;            }            catch (Exception err)            {                //throw (new Exception("" + err.Message));               MessageBox.Show("恢複資料庫失敗,請關閉所有和該資料庫連接的程式!" + err.Message);                return false;            }            finally            {                svr.DisConnect();            }

  

C# 還原SQL資料庫(非預存程序方式)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.