有兩種方法,都是儲存為.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...