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 } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM