c# 還原數據庫

在還原一個200M左右的bak格式數據庫文件時遇到了兩個問題:

問題1:

RESTORE 無法處理數據庫 'XXXX',因爲它正由此會話使用。建議在執行此操作時使用 master 數據庫
問題2:
超時時間已到。在操作完成之前超時時間已過或服務器未響應


解決及實現代碼如下:

            string pathFile ;//bak文件路徑
            string dbName ;//數據庫名稱

    string connectionString;//數據庫連接字符串

            // 還原數據庫
            if (!File.Exists(pathFile)) return false;
            SqlConnection conn = new SqlConnection(connectionString);

            string cmdStr = string.Format("use master restore database {0} from disk='{1}'", dbName, pathFile);//添加“use master ”解決問題一
            SqlCommand cmd = new SqlCommand(cmdStr, conn);
            try
            {
                conn.Open();
                cmd.CommandTimeout = 100;//解決問題二
                cmd.ExecuteNonQuery();
            }
            catch(Exception ex)
            {

Console.WriteLine("還原數據庫失敗");

            }
            finally
            {
                conn.Close();
            }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章