c#實現sql資料庫備份與恢復
有兩種方法,都是儲存為.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
' ----日誌檔案還原後存放的新位置
關於這兩個語句還有更詳細的介紹:http:
//資料庫備份與恢復例項
private
void btnbak_click(object sender, eventargs e) //
備份
private
void btnreduct_click(object sender, eventargs e) //
恢復
//////
對資料庫的備份和恢復操作,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();
try
catch
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();
try
catch
(exception ex)
finally
恢復相關的引數和備份相同,不再解釋,自己看一下.
上面兩個函式呼叫到了更改進度條的兩個函式:
private
void step2(string message, int
percent)
private
void step(string message, int
percent)
setp對應備份,,setp2對應恢復....
**
C 實現SQL資料庫備份與恢復
有兩種方法,都是儲存為.bak檔案。一種是直接用sql語句執行,另一種是通過引用sql server的sqldmo元件來實現 1.通過執行sql語句來實現 注意,用sql語句實現備份與還原操作時,最好不要使用需要備份或還原的資料庫連線,而使用master,否則可能會出現如下三個問題 1 超時時間已到...
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...