شما باید توی بازیابی به یک نکته اساسی توجه کنی اونم اینه که نباید به همون دیتابیسی وصل بشی که میخوای بازیابیش کنی
من یک کد برات میذارم اگه کارایی که میگمو درست انجام بدی مطمنم درست کار می کنه :
con = newSqlConnection("Data Source=اسم سرور;Initial Catalog=Security;Integrated Security=True");
try
{
con.Open();
string s1 = "ALTER DATABASE اسم دیتابیست SET OFFLINE WITH ROLLBACK IMMEDIATE";
string s2 = "ALTER DATABASE اسم دیتابیستSET MULTI_USER";
string query = "RESTORE DATABASE اسم دیتابیست FROM DISK ='" + Masir + "' WITH RECOVERY,REPLACE";
SqlCommand cmd = newSqlCommand();
cmd.CommandText = s1;
cmd.Connection = con;
cmd.ExecuteNonQuery();
cmd.CommandText = s2;
cmd.Connection = con;
cmd.ExecuteNonQuery();
cmd.CommandText = query;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("بازیابی با موفقیت انجام شد ");
}
catch
{
MessageBox.Show("اشکال در ارتباط با دیتابیس ");
}
Masir : مسیر فایل پشتیبانت هست که می تونی از یک opendialogbox بگیریش
حله؟