日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

如何通过 C# 动态备份 Sql 数据库?

發(fā)布時間:2023/12/4 C# 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何通过 C# 动态备份 Sql 数据库? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

咨詢區(qū)

  • kaiz.net

我想寫段代碼來備份我的 Sql Server 2008 數(shù)據(jù)庫,請問大家有什么好的方法嗎?

回答區(qū)

  • Stacked

你可以用代碼去執(zhí)行 ?BACKUP DATABASE ... TO DISK 命令,比如下面這樣,先配置下config。

<?xml?version="1.0"?encoding="utf-8"?> <configuration><connectionStrings><add?name="MyConnString"?connectionString="Data?Source=(local);Initial?Catalog=MyDB;?Integrated?Security=SSPI;"?Timeout=30"?/></connectionStrings><appSettings><add?key="BackupFolder"?value="C:/temp/"/></appSettings> </configuration>

然后就可以編碼了。

//?read?connectionstring?from?config?file var?connectionString?=?ConfigurationManager.ConnectionStrings["MyConnString"].ConnectionString;?//?read?backup?folder?from?config?file?("C:/temp/") var?backupFolder?=?ConfigurationManager.AppSettings["BackupFolder"];var?sqlConStrBuilder?=?new?SqlConnectionStringBuilder(connectionString);//?set?backupfilename?(you?will?get?something?like:?"C:/temp/MyDatabase-2013-12-07.bak") var?backupFileName?=?String.Format("{0}{1}-{2}.bak",?backupFolder,?sqlConStrBuilder.InitialCatalog,?DateTime.Now.ToString("yyyy-MM-dd"));using?(var?connection?=?new?SqlConnection(sqlConStrBuilder.ConnectionString)) {var?query?=?String.Format("BACKUP?DATABASE?{0}?TO?DISK='{1}'",?sqlConStrBuilder.InitialCatalog,?backupFileName);using?(var?command?=?new?SqlCommand(query,?connection)){connection.Open();command.ExecuteNonQuery();} }
  • Prashant Manjule

對于 SqlServer 的備份和恢復(fù),完全可以使用自帶的 SqlCmd 命令,接下來就是用 C# 和 SqlCmd 互動就行了。

  • 備份

  • SqlCmd?-E?-S?Server_Name?–Q?“BACKUP?DATABASE?[Name_of_Database]?TO?DISK=’X:PathToBackupLocation[Name_of_Database].bak'”
  • 恢復(fù)

  • SqlCmd?-E?-S?Server_Name?–Q?“RESTORE?DATABASE?[Name_of_Database]?FROM?DISK=’X:PathToBackupFile[File_Name].bak'”

    然后我們通過 ?Process 啟動 bat 腳本即可。

    FileInfo?file?=?new?FileInfo("DB\\batfile.bat");Process?process?=?new?Process();process.StartInfo.FileName?=?file.FullName;process.StartInfo.Arguments?=?@"-X";process.StartInfo.WindowStyle?=?ProcessWindowStyle.Normal;process.StartInfo.UseShellExecute?=?false;?//Changed?Lineprocess.StartInfo.RedirectStandardOutput?=?true;??//Changed?Lineprocess.Start();string?output?=?process.StandardOutput.ReadToEnd();?//Changed?Lineprocess.WaitForExit();?//Moved?Line

    點評區(qū)

    如果要備份DB,一般用數(shù)據(jù)庫的計劃任務(wù),如果一定要通過代碼實現(xiàn),我覺得用 SqlCmd 工具更適合。

    總結(jié)

    以上是生活随笔為你收集整理的如何通过 C# 动态备份 Sql 数据库?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。