C 實現SQL資料庫備份與恢復

2021-10-22 06:59:47 字數 2286 閱讀 2673

有兩種方法,都是儲存為.bak檔案。一種是直接用sql語句執行,另一種是通過引用sql server的sqldmo元件來實現:

1.通過執行sql語句來實現

注意,用sql語句實現備份與還原操作時,最好不要使用需要備份或還原的資料庫連線,而使用master,否則可能會出現如下三個問題:(1)超時時間已到。在操作完成之前超時時間已過或伺服器未響應。(2)  在向伺服器傳送請求時發生傳輸級錯誤。(provider:共享記憶體提供程式,error:0-系統無法開啟檔案。)  (3)從伺服器接收結果時發生傳輸級錯誤。(provider:共享記憶體提供程式,error:0   -   系統無法開啟檔案。) ,如果一定要用這個連線的話,要注意在執行sql語句前加個sql語句:use master,這樣可能會解決以上問題。

(1)資料備份語句:backup database  資料庫名 to disk='儲存路徑/dbname.bak'

(2)資料恢復語句:restore database 資料庫名 from disk='儲存路徑/dbname.bak'with move 'dbname_data' to 'c:/tcomcrm20041217.mdf',--資料檔案還原後存放的新位置

move 'dbname_log' to 'c:/comcrm20041217.ldf'----日誌檔案還原後存放的新位置

//資料庫備份與恢復例項

///

/// 對資料庫的備份和恢復操作,sql語句實現

///

/// 實現備份或恢復的sql語句

/// 該操作是否為備份操作,是為true否,為false

private void bakreductsql(string cmdtext,bool isbak)

else

cmdbakrst.executenonquery();

if (!isbak)

else

}catch (sqlexception ***c)

catch (exception ex)

finally

}另外,如果出現:「尚未備份資料庫的日誌尾部」錯誤,可以在還原語句後加上 with replace 或 with stopat

2.用sqldmo實現(下面**引用別人的)

//資料庫備份

string backaway =textbox1.text.trim();

sqldmo.backup obackup = new sqldmo.backupclass();

sqldmo.sqlserver osqlserver = new sqldmo.sqlserverclass();

trycatch

finally

//資料庫恢復

//獲取恢復的路徑

string dbaway = textbox2.text.trim();

sqldmo.restore restore = new sqldmo.restoreclass();

sqldmo.sqlserver server = new sqldmo.sqlserverclass();

server.connect(serverip, serverid, serverpwd);

//kill database process

conn = new 工資管理系統.ccutility.connstring();

conn.dbopen();

sqlcommand cmd = new sqlcommand("use master select spid from sysprocesses ,sysdatabases where sysprocesses.dbid=sysdatabases.dbid and sysdatabases.name='k2'", conn.connection);

sqldatareader dr = cmd.executereader();

while (dr.read())

dr.close();

conn.dbclose();

trycatch (exception ex)

finally

恢復相關的引數和備份相同,不再解釋,自己看一下.

上面兩個函式呼叫到了更改進度條的兩個函式:

private void step2(string message, int percent)

private void step(string message, int percent)

C 實現SQL資料庫備份與恢復

c 實現sql資料庫備份與恢復 有兩種方法,都是儲存為.bak檔案。一種是直接用sql語句執行,另一種是通過引用sql server的sqldmo元件來實現 1 通過執行sql語句來實現 注意,用sql語句實現備份與還原操作時,最好不要使用需要備份或還原的資料庫連線,而使用master,否則可能會出...

C 實現SQL資料庫備份與恢復

有兩種方法,都是儲存為.bak檔案。一種是直接用sql語句執行,另一種是通過引用sql server的sqldmo元件來實現.注意,用sql語句實現備份與還原操作時,最好不要使用需要備份或還原的資料庫連線,而使用master,否則可能會出現如下三個問題 1 超時時間已到。在操作完成之前超時時間已過或...

c 備份恢復sql資料庫

很多人想實現在c 中備份與恢復sql資料庫,又想要有在sql中那種進度條的狀態.其實用c 的sqldmo就可以實現 資料庫備份 string backaway textbox1.text.trim sqldmo.backup obackup new sqldmo.backupclass sqldmo...