.net mssql自己封装的 备份/还原 数据库方法

简介:        #region 数据库备份 BackupData         ///         /// 数据库备份         ///         /// MapPath转换过的备份文件目录         /// ...

       #region 数据库备份 BackupData
        /// <summary>
        /// 数据库备份
        /// </summary>
        /// <param name="dir">MapPath转换过的备份文件目录</param>
        /// <param name="dbname">数据库名称</param>
        /// <returns>返回string值为空表示备份成功</returns>
        public static string BackupData(string dir, string dbname)
        {
            string ErrorString = "";
            string bakpath = string.Format("{0}/bak{1}.bak", dir, Utility.timestring);///完整的路径
            string strSql2 = string.Format("backup database {0} to disk='{1}'", dbname, bakpath);

            using (SqlConnection conn = new SqlConnection(connectionString))
            {

                using (SqlCommand cmd = new SqlCommand(strSql2, conn))
                {
                    try
                    {
                        conn.Open();
                        cmd.ExecuteNonQuery();
                    }
                    catch (Exception er)
                    {
                        ErrorString = er.Message;
                    }

                }
            }
            return ErrorString;
        }
        #endregion

        #region 还原数据库(还原数据库要有权限才能还原成功)RestoreData
        /// <summary>
        /// 还原数据库(还原数据库要有权限才能还原成功)
        /// </summary>
        /// <param name="bakpath">MapPath转换过的备份文件路径</param>
        /// <param name="dbname">数据库名称</param>
        /// <returns>返回string值为空表示还原成功</returns>
        public static string RestoreData(string bakpath, string dbname)
        {
            string ErrorString = "";
            ///这里改成数据库管理员帐号和密码
            //"Data Source=PKM-PC\\SQL05;Initial Catalog=dbtest;User Id=**;Pwd=****";
            string cmdtxt = string.Format("use master restore database {0}  from disk='{1}'", dbname, bakpath);
            using (SqlConnection Conn = new SqlConnection(connectionString))
            {

                try
                {

                    using (SqlCommand cmd = new SqlCommand(cmdtxt, Conn))
                    {
                        Conn.Open();
                        cmd.ExecuteNonQuery();
                    }

                }
                catch (Exception er)
                {
                    ErrorString = er.Message;
                }
            }
            return ErrorString;
        }
        #endregion




相关文章
|
5天前
|
存储 Oracle 关系型数据库
|
5天前
|
运维 Oracle 关系型数据库
关系型数据库Oracle自动化备份
【7月更文挑战第21天】
15 3
|
6天前
|
存储 SQL Oracle
关系型数据库Oracle归档日志备份
【7月更文挑战第19天】
26 5
|
4天前
|
Oracle 关系型数据库 数据库连接
|
6天前
|
SQL Oracle 关系型数据库
关系型数据库Oracle备份工具
【7月更文挑战第19天】
23 4
|
5天前
|
存储 Oracle 安全
关系型数据库Oracle备份频率
【7月更文挑战第20天】
15 2
|
8天前
|
Oracle 关系型数据库 数据库
关系型数据库Oracle增量备份
【7月更文挑战第18天】
18 2
|
2月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
118 0
|
2月前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
47 0
|
2月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
184 5