2015-02-18 1 views
1

Я разработал MIS в Windows Forms, в котором я сделал резервную копию базы данных SQL Server 2012, но мне не удалось восстановить файл резервной копии (.bak).Как восстановить файл базы данных SQL Server 2012 .bak на C#?

Это мой код:

private void buttonRestore_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     openFileDialog1.Filter = "Backup File |*.bak"; 

     if (openFileDialog1.ShowDialog() == DialogResult.OK) 
     { 
      string sql = "Alter Database BOQ SET SINGLE_USER WITH ROLLBACK IMMEDIATE;"; 
      sql += "Restore Database BOQ FROM DISK ='" + openFileDialog1.FileName + "' WITH REPLACE;"; 

      SqlConnection con = new SqlConnection("Data Source=.; Initial Catalog=BOQ;Integrated Security=True"); 
      SqlCommand command = new SqlCommand(sql,con); 

      con.Open(); 
      command.ExecuteNonQuery(); 

      MessageBox.Show("Database Recovered Successfully!"); 
      con.Close(); 
      con.Dispose(); 
     } 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 

Но я получаю эту ошибку:

enter image description here

ответ

4

Вам не может подключиться к базе данных BOQ, а затем восстановить .bak поверх него!

"Data Source=.; Initial Catalog=BOQ;Integrated Security=True" 
           **** 

Вам необходимо подключиться к базе данных master и затем вы можете восстановить BOQ базы данных:

"Data Source=.; Initial Catalog=master;Integrated Security=True" 
           ******* 
+0

Спасибо marc_s это работает – Loyal

+0

я знаю, что это старый пост, но я не могу выяснить, как сначала подключиться к основной базе данных, а затем к той, которая должна быть восстановлена? Некоторые разъяснения были бы замечательными. Спасибо – PeterJ

+1

@PeterJ: просто используйте строку подключения * second *, которую я показал в своем ответе, чтобы подключиться к 'master', и когда вы закончите восстановление базы данных, закройте это соединение и используйте строку подключения * first * для подключения к фактическую базу данных, которую вы хотите использовать (и которую вы только что восстановили) –

Смежные вопросы