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 } }
  • 相关阅读:
    函数
    python操作文件
    POJ-2689-Prime Distance(素数区间筛法)
    POJ-2891-Strange Way to Express Integers(线性同余方程组)
    POJ-2142-The Balance
    POJ-1061-青蛙的约会(扩展欧几里得)
    Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing
    Educational Codeforces Round 75 (Rated for Div. 2) C. Minimize The Integer
    Educational Codeforces Round 75 (Rated for Div. 2) B. Binary Palindromes
    Educational Codeforces Round 75 (Rated for Div. 2) A. Broken Keyboard
  • 原文地址:https://www.cnblogs.com/hbh123/p/9566227.html
Copyright © 2011-2022 走看看