2013-07-18 35 views
-1

當我使用給定的代碼從該文件進行備份和恢復時,它成功恢復,但是當我刪除某些表的某些行並從同一個備份文件恢復數據庫時,它給出錯誤從.bak文件使用c恢復sql server 2008數據庫#

「對象引用不設置爲一個對象的一個​​實例」

if (openFileDialog1.ShowDialog() == DialogResult.OK) 
{ 
    cmd2 = new SqlCommand("USE MASTER RESTORE DATABASE plproject FROM DISK = '" + openFileDialog1.FileName + "' WITH REPLACE", Con); 
    dr = cmd1.ExecuteReader(); 
    //cmd2.ExecuteNonQuery(); 
    dr.Dispose(); 
    MessageBox.Show("Database Restored", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); 
} 
+0

您正在創建'cmd2' - 但您正在執行'cmd1'?另外:這是一個查詢,不返回任何數據 - 所以**不使用**'.ExecuteReader()' - 使用'.ExecuteNonQuery()'代替。另外:我建議連接到**連接字符串**中的'master'數據庫,並且不要在你的SQL語句中使用'USE MASTER' –

回答

0

編寫存儲過程或的SqlCommand如下。檢查這MSDN link

USE master 
GO 
RESTORE DATABASE AdventureWorks2012 
    FROM TAPE = '\\.\Tape0' 
GO 
0

這個鱈魚給我工作。 通過ado.net發送查詢 (「使用master RESTORE DATABASE new_2SQL FROM DISK = N'D:\ backup.bak'WITH FILE = 1,NOUNLOAD,REPLACE,STATS = 10」);

相關問題