mvc项目中实现备份数据库(sqlserver2005)

功能要求:mvc项目,实现数据库备份(bak文件)

实现步骤:<a id="backupDB" href="javascript:" >数据库备份</a>

方法:1、新建类DatabaseMaintenance

    /// <summary>
    /// 数据库维护
    /// </summary>
    public class DatabaseMaintenance
    {
        /// <summary>
        /// 备份数据库
        /// </summary>
        /// <param name="fileName">备份文件的路径</param>
        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();
            }
        }  

        /// <summary>
        /// 还原数据库 database
        /// </summary>
        /// <param name="fileName">要还原的数据库文件路径</param>
        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 IMMEDIATE\n" +
                    "BEGIN TRY\n" +
                        "RESTORE DATABASE [{0}] FROM DISK = ‘{1}‘ WITH REPLACE\n" +
                    "END TRY\n" +
                    "BEGIN CATCH\n" +
                        "SET @ErrorMessage = ERROR_MESSAGE()\n" +
                    "END CATCH\n" +
                    "ALTER DATABASE [{0}] SET MULTI_USER WITH ROLLBACK IMMEDIATE\n" +
                    "IF (@ErrorMessage is not NULL)\n" +
                    "BEGIN\n" +
                        "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、在控制器里调用方法

       //备份数据库
       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、删除已经备份的数据库bak文件

      //删除数据库备份文件
       public string DelDataBase(string id)
       {
           try
           {
               string filepath=Server.MapPath("~/Data/"+id);
               System.IO.File.Delete(filepath);
               return "删除成功";
           }
           catch {
               return "删除失败";
           }
       }
时间: 2024-08-04 00:44:09

mvc项目中实现备份数据库(sqlserver2005)的相关文章

谈谈MVC项目中的缓存功能设计的相关问题

本文收集一些关于项目中为什么需要使用缓存功能,以及怎么使用等,在实际开发中对缓存的设计的考虑 为什么需要讨论缓存呢? 缓存是一个中大型系统所必须考虑的问题.为了避免每次请求都去访问后台的资源(例如数据库),我们一般会考虑将一些更新不是很频繁的,可以重用的数据,通过一定的方式临时地保存起来,后续的请求根据情况可以直接访问这些保存起来的数据.这种机制就是所谓的缓存机制. 根据缓存的位置不同,可以区分为: 1.客户端缓存(缓存在用户的客户端,例如浏览器) 2.服务器断货(缓存在服务器中,可以缓存在内存

在VS2013 MVC项目中上传图片

之前做网站项目时,凡遇到保存图片的,我都将图片上传后存储在服务器的本地文件夹中,在一个Controller的Action中,类似操作如下所示: public ActionResult UpLoad(HttpPostedFileBasearImg) {             //保存图片            if (arImg != null)            {                 string uploadName =arImg.FileName;//获取待上传图片的完整

ServiceStack 项目实例 005 使用第一个服务功能 (在MVC项目中)

建立好服务后,我们就可以在MVC项目中使用这个服务,在使用这个服务之前,需要先确定一下它所在端口,只需要在SS项目上点右键,将其设置为启动项目,然后运行一下SS项目,在浏览器地址栏,就可以看到这个服务的端口号,并且也能看到已经添加到其中的服务.(运行的效果可以在001节中的截图看到,001节中的端口为59068.) 在MVC的Controller目录下添加一个控制器NewsController.cs,在NewsController.cs中加入一个 Action, 用来显示添加新闻的页面 publ

在项目中使用SQLite数据库小结

------------------------------------------------------------------------推荐: - VS2012 使用 1.0.84 版的库 - VS2013 使用 1.0.93 版的库------------------------------------------------------------------------1.安装运行库 sqlite-netFx45-setup-bundle-x64-2012-1.0.84.0.exe

MVC项目中如何判断用户是在用什么设备进行访问

使用UAParser在C#MVC项目中如何判断用户是在用什么设备进行访问(手机,平板还是普通的电脑) 现在我们开发的很多web应用都要支持手机等移动设备.为了让手机用户能有更加好的用户体验,我们经常为手机设备专门准备一套前端的页面.这样当用户使用普通电脑来访问的时候,我们的应用就向用户展示普通电脑的页面.当用户使用手机等移动设备来访问我们的系统的时候,我们就向用户展示手机设备的页面.但是这时候另一个问题出现了.如何判断用户在使用什么设备访问我们的应用?是使用手机还是普通电脑? 网上能查到的不同的

在 ASP.NET MVC 项目中使用 WebForm、 HTML

原文地址:http://www.cnblogs.com/snowdream/archive/2009/04/17/winforms-in-mvc.html ASP.NET MVC和WebForm各有各的优点,我们可能需要同时使用ASP.NET MVC和WebForm.本文介绍了如何在ASP.NET MVC项目中使用WebForm.首先新建一个名为WebForms的文件夹用于存放WebForm,并添加一个Web窗体文件Demo.aspx作为演示. Demo.aspx就简单的输出一句话“It’s a

转 mvc项目中,解决引用jquery文件后智能提示失效的办法

mvc项目中,解决用Url.Content方法引用jquery文件后智能提示失效的办法 这个标题不知道要怎么写才好, 但是希望文章的内容对大家有帮助. 场景如下: 我们在用开发开发程序的时候,经常会引用jquery, 但是由于路由的关系,最终访问页面的地址相对js文件来说,是不固定的. 为了在view中能够引用到jquery文件,我们通常都是用如下的代码 <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")

【转】在 ASP.NET MVC 项目中使用 WebForm

ASP.NET MVC和WebForm各有各的优点,我们可能需要同时使用ASP.NET MVC和WebForm.本文介绍了如何在ASP.NET MVC项目中使用WebForm. 首先新建一个名为WebForms的文件夹用于存放WebForm,并添加一个Web窗体文件Demo.aspx作为演示. Demo.aspx就简单的输出一句话"It's a WebForm." 关键步骤在于路由设置.如果你希望WebForms这个文件夹名作为URL的一部分,也就是普通WebForm应用程序的方式来访

添加Bootstrap 到MVC项目中(vs2010)

环境:Visual Studio 2010   ASP.NET MVC3 手动添加: 下载地址:http://twitter.github.com/bootstrap/ 一个js,两个css,两张图 js 文件:  •bootstrap.min.js CSS 文件:  •bootstrap.min.css  •bootstrap-responsive.min.css image 文件:  •glyphicons-halflings.png  •glyphicons-halflings-white