日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]最近在項目中遇到一個問題,本人菜鳥不會解決,在此歸納整理一下,方便以后看看,順便也許能幫上一些受此困擾的菜鳥們!功能要求:mvc項目,實現(xiàn)數(shù)據(jù)庫備份(bak文件)實現(xiàn)步驟:數(shù)據(jù)庫備份方法:1、新建類D

最近在項目中遇到一個問題,本人菜鳥不會解決,在此歸納整理一下,方便以后看看,順便也許能幫上一些受此困擾的菜鳥們!

功能要求:mvc項目,實現(xiàn)數(shù)據(jù)庫備份(bak文件)

實現(xiàn)步驟:數(shù)據(jù)庫備份

方法:1、新建類DatabaseMaintenance

????

//////?數(shù)據(jù)庫維護
????///public?class?DatabaseMaintenance
????{
????????//////?備份數(shù)據(jù)庫
????????//////備份文件的路徑public?static?void?Backup(string?fileName)
????????{
????????????//TODO?SQL?Server?only?now
????????????string?sqlConnectionString?=?ConfigurationManager.ConnectionStrings["HelpStoreContext"].ToString();
????????????using?(SqlConnection?conn?=?new?SqlConnection(sqlConnectionString))
????????????{
????????????????string?dbName?=?new?SqlConnectionStringBuilder(sqlConnectionString).InitialCatalog;
;
????????????????string?commandText?=?string.Format(
????????????????????"BACKUP?DATABASE?[{0}]?TO?DISK?=?'{1}'?WITH?FORMAT",
????????????????????dbName,
????????????????????fileName);

????????????????DbCommand?dbCommand?=?new?SqlCommand(commandText,?conn);
????????????????if?(conn.State?!=?ConnectionState.Open)
????????????????????conn.Open();
????????????????dbCommand.ExecuteNonQuery();
????????????}
????????}

????????//////?還原數(shù)據(jù)庫?database
????????//////要還原的數(shù)據(jù)庫文件路徑public?static?void?RestoreBackup(string?fileName)
????????{
????????????string?sqlConnectionString?=?ConfigurationManager.AppSettings["HelpStoreContext"];
????????????using?(SqlConnection?conn?=?new?SqlConnection(sqlConnectionString))
????????????{
????????????????string?dbName?=?new?SqlConnectionStringBuilder(sqlConnectionString).InitialCatalog;
????????????????string?commandText?=?string.Format(
????????????????????"DECLARE?@ErrorMessage?NVARCHAR(4000)n"?+
????????????????????"ALTER?DATABASE?[{0}]?SET?SINGLE_USER?WITH?ROLLBACK?IMMEDIATEn"?+
????????????????????"BEGIN?TRYn"?+
????????????????????????"RESTORE?DATABASE?[{0}]?FROM?DISK?=?'{1}'?WITH?REPLACEn"?+
????????????????????"END?TRYn"?+
????????????????????"BEGIN?CATCHn"?+
????????????????????????"SET?@ErrorMessage?=?ERROR_MESSAGE()n"?+
????????????????????"END?CATCHn"?+
????????????????????"ALTER?DATABASE?[{0}]?SET?MULTI_USER?WITH?ROLLBACK?IMMEDIATEn"?+
????????????????????"IF?(@ErrorMessage?is?not?NULL)n"?+
????????????????????"BEGINn"?+
????????????????????????"RAISERROR?(@ErrorMessage,?16,?1)n"?+
????????????????????"END",
????????????????????dbName,
????????????????????fileName);

????????????????DbCommand?dbCommand?=?new?SqlCommand(commandText,?conn);
????????????????if?(conn.State?!=?ConnectionState.Open)
????????????????????conn.Open();
????????????????dbCommand.ExecuteNonQuery();
????????????}

????????????//clear?all?pools
????????????SqlConnection.ClearAllPools();
????????}
????}

?

2、在控制器里調(diào)用方法


?

?//備份數(shù)據(jù)庫
????????public?string?BackupData()
????????{
????????????try
????????????{
????????????????var?dname?=?DateTime.Now.Ticks;
????????????????string?filename?=?Server.MapPath("~/Data/"?+?dname?+?".bak");
????????????????if?(!System.IO.File.Exists(filename))
????????????????{
????????????????????System.IO.File.Create(filename);
????????????????}
????????????????DatabaseMaintenance.Backup(filename);
????????????????return?"備份成功";
????????????}
????????????catch
????????????{
????????????????return?"備份失敗";
????????????}
????????}

?

3、刪除已經(jīng)備份的數(shù)據(jù)庫bak文件

?


?

?//刪除數(shù)據(jù)庫備份文件
????????public?string?DelDataBase(string?id)
????????{
????????????try
????????????{
????????????????string?filepath=Server.MapPath("~/Data/"+id);
????????????????System.IO.File.Delete(filepath);
????????????????return?"刪除成功";
????????????}
????????????catch?{
????????????????return?"刪除失敗";
????????????}
????????}


?

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉