zoukankan      html  css  js  c++  java
  • C#操作数据库还原bak文件 删除操作

             /// <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, string dataSource)
            {
                var strconn = "Data Source=" + dataSource + ";Initial Catalog=master;User ID=" + userId + ";pwd =" + passWord + "";
                DataTable DBNameTable = new DataTable();
                SqlDataAdapter Adapter = new SqlDataAdapter("select name from master..sysdatabases", strconn);
                lock (Adapter)
                {
                    Adapter.Fill(DBNameTable);
                }
                foreach (DataRow row in DBNameTable.Rows)
                {
                    if (row["name"].ToString() == dataBaseName)
                    {
                        throw new KnownException("已存在对应的数据,请勿重复还原数据库!");
                    }
                }
    //检测真正当前bak文件真正的log mdf的名字
    var strsql = " restore filelistonly from disk = '" + path + "'"; SqlDataAdapter Adapter2 = new SqlDataAdapter(strsql, strconn); var dt = new DataTable(); 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 = new SqlConnection(strconn); SqlCommand cmd1 = new SqlCommand(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, string dataSource) { 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 = new SqlCommand(strsql, conn); cmd.ExecuteNonQuery(); try { cmd.ExecuteNonQuery(); } catch (Exception ex) { throw new KnownException(ex.Message); } finally { conn.Close();//g } }
  • 相关阅读:
    macOS 遇到 svnadmin无法使用的情况
    语音识别进化简史:从造技术到建系统
    你是什么垃圾?人工智能面对干垃圾和湿垃圾“有点蒙”
    垃圾分类的事,让机器人做去吧!
    怎样才能叫一只奶牛自愿挤奶?
    第一次,脑机接口可以实时读取人类语言了
    机器人工作原理的超详细解析,生动、形象!
    1900页数学基础:面向CS的线性代数、拓扑、微积分和最优化
    微软Azure AI负责人:OpenAI只在微软云上训练模型
    Velodyne收购高清地图公司 将研发更安全的ADAS系统
  • 原文地址:https://www.cnblogs.com/hbh123/p/9566227.html
Copyright © 2011-2022 走看看