C#操作数据库还原bak文件 删除操作

摘要:
//////还原数据库//////数据库名称///还原的路径bak文件///用户名///密码///˂paramname="Da
/// <summary>
        ///还原数据库
        /// </summary>
        /// <param name="dataBaseName">数据库名称</param>
        /// <param name="path">还原的路径bak文件</param>
        /// <param name="UserId">用户名</param>
        /// <param name="PassWord">密码</param>
        /// <param name="DataSource">IP或者当前服务(.)</param>
        public static void Restoredb(string dataBaseName, string path, string userId, string passWord, stringdataSource)
        {
            var strconn = "Data Source=" + dataSource + ";Initial Catalog=master;User ID=" + userId + ";pwd =" + passWord + "";
            DataTable DBNameTable = newDataTable();
            SqlDataAdapter Adapter = new SqlDataAdapter("select name from master..sysdatabases", strconn);
            lock(Adapter)
            {
                Adapter.Fill(DBNameTable);
            }
            foreach (DataRow row inDBNameTable.Rows)
            {
                if (row["name"].ToString() ==dataBaseName)
                {
                    throw new KnownException("已存在对应的数据,请勿重复还原数据库!");
                }
            }
//检测真正当前bak文件真正的log mdf的名字
var strsql = "restore filelistonly from disk = '" + path + "'"; SqlDataAdapter Adapter2 = newSqlDataAdapter(strsql, strconn); var dt = newDataTable(); lock(Adapter2) { Adapter2.Fill(dt); } var mdf = dt.Rows[0][0].ToString(); var log = dt.Rows[1][0].ToString(); string restore = string.Format(@"restore database {0} from disk = '{1}' with REPLACE , move '{2}' to 'D:{3}.mdf' ,move '{4}' to 'D:{5}.ldf'", dataBaseName, path, mdf, dataBaseName, log, dataBaseName); SqlConnection conn = newSqlConnection(strconn); SqlCommand cmd1 = newSqlCommand(restore, conn); conn.Open();//k cmd1.ExecuteNonQuery(); conn.Close();//g } /// <summary> ///删除数据库 /// </summary> /// <param name="dataBaseName"></param> /// <param name="UserId"></param> /// <param name="PassWord"></param> /// <param name="DataSource"></param> /// <param name="code"></param> /// <returns></returns> public static void DeleteDataBase(string dataBaseName, string userId, string passWord, stringdataSource) { var strconn = "Data Source=" + dataSource + ";Initial Catalog=master;User ID=" + userId + ";pwd =" + passWord + ""; SqlConnection conn = new SqlConnection(strconn);//创建一个数据库连接对象 conn.Open(); var strsql = string.Format("drop database {0}", dataBaseName); SqlCommand cmd = newSqlCommand(strsql, conn); cmd.ExecuteNonQuery(); try{ cmd.ExecuteNonQuery(); } catch(Exception ex) { throw newKnownException(ex.Message); } finally{ conn.Close();//g } }

免责声明:文章转载自《C#操作数据库还原bak文件 删除操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇oracle 解锁RocketMQ系列:使用systemd管理nameserver和broker下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

浅谈Slick(4)- Slick301:我的Slick开发项目设置

前面几篇介绍里尝试了一些Slick的功能和使用方式,看来基本可以满足用scala语言进行数据库操作编程的要求,而且有些代码可以通过函数式编程模式来实现。我想,如果把Slick当作数据库操作编程主要方式的话,可能需要先制定一套比较规范的模式来应付日常开发(也要考虑团队开发)、测试和维护。首先从项目结构来说,我发现由Intellij-Idea IDE界面直接产...

使用WMI控制Windows进程 和服务

1.使用WMI控制Windows进程 本文主要介绍两种WMI的进行操作:检查进程是否存在、创建新进行 代码如下: using System; using System.Collections.Generic; using System.Text; using System.Management; using System.Threa...

C# Dictionary与List的相互转换

// 声明Dictionary并初始化 Dictionary<string, string> dic = new Dictionary<string, string>() { {"1", "one"}, {"2",...

一次SQLServer数据库宕机问题

数据库采用SQL Server 2005版本, 数据库文件约为6G,而LDF日志文件已经高达36G。 服务器开始变的不太稳定 。数据没有成功保存。 打开事件查看器发现很多信息日志 数据库 '' 中的文件 '_log' 的自动增长已由用户取消,或已在 30031 毫秒后超时。请使用 ALTER DATABASE 为此文件设置较小的 FILEGROWTH 值...

数据库性能优化一:数据库自身优化(大数据量)

转自:数据库性能优化一:数据库自身优化(大数据量) 优化①:增加次数据文件,设置文件自动增长(粗略数据分区)   1.1:增加次数据文件   从SQL SERVER 2005开始,数据库不默认生成NDF数据文件,一般情况下有一个主数据文件(MDF)就够了,但是有些大型的数据库,由于信息很多,而且查询频繁,所以为了提高查询速度,可以把一些表或者一些表中的...

C#中去除String中的空格

第一种 Trim string中自带的方法Trim,可以去除行首行尾的空格,或将某一字符删除。如: var str = text.Trim(); 第二种 Regex类(正则表达式) 下面为转发 源地址:http://www.cnblogs.com/dudu/archive/2011/09/17/2179423.html 1. 匹配中文(全角)空格 Re...