PDA

View Full Version : restore کردن پایگاه داده در #C



Mohammad_MCE
سه شنبه 13 آبان 1393, 07:09 صبح
سلام به دوستان وقت تون بخیر.
من وقتی میخوام از برنامه پایگاه داده رو restore کنم این خطا رو میده:متفکر:
Cannot open backup device 'E:\C# Project\P1\P1\bin\Debug\Back up\1393-8-12.BAK'. Operating system error 2(The system cannot find the file specified.).
RESTORE DATABASE is terminating abnormally.
Changed database context to 'master
مشکل از کجاست؟

systam
سه شنبه 13 آبان 1393, 09:39 صبح
سلام
نکته : دز زمانی گه اقدام به ریستور کردن بانک برنامه میکنید نباید بانک باز باشد

behnamgholipoor
سه شنبه 13 آبان 1393, 23:57 عصر
سلام دوست عزیز ببین این کد مشکلتو حل میکنه

SqlConnection con = new SqlConnection();
con.ConnectionString = @" کانکشن استرینگ شما";
SqlCommand sc = new SqlCommand();
sc.Connection = con;
SqlConnection.ClearAllPools();
con.Open();
string dbName = con.Database;
string RestoreQuery = @"USE [master]; RESTORE DATABASE [" + dbName + "] FROM DISK = N'" + txtRestore.Text + "' WITH NOUNLOAD, REPLACE, STATS = 10";
sc.CommandText = RestoreQuery;
sc.ExecuteNonQuery();
con.Close();

Mohammad_MCE
پنج شنبه 15 آبان 1393, 15:46 عصر
ممنون دوست عزیز اما متاسفانه با همون پیام خطا مواجه میشم:متفکر:

دلتنگ اسمان
پنج شنبه 15 آبان 1393, 16:17 عصر
با سلام
1- اول طبق تصویر زیر security فایل بک آپ رو چک کن.
2- مسیر فایل بک آپ رو در کوتاهترین مسیر قراره بده. مثلا در درایو D:\backup
125370

Mr.Csharp
جمعه 16 آبان 1393, 13:42 عصر
این کد رو هم امتحان بکن :
try
{

SqlConnection objconnection = new SqlConnection(@"کانکشن استرینگ");
objconnection.Open();
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
btnback.Enabled = false;
btnrestore.Enabled = false;
string s1 = "ALTER DATABASE [" + Application.StartupPath + "\\نام بانک.mdf] SET OFFLINE WITH ROLLBACK IMMEDIATE";
string s2 = "ALTER DATABASE [" + Application.StartupPath + "\\نام بانک.mdf] SET MULTI_USER";
string query = "RESTORE DATABASE [" + Application.StartupPath + "\\نام بانک.mdf] FROM DISK ='" + openFileDialog1.FileName + "' WITH RECOVERY,REPLACE";
SqlCommand cmd = new SqlCommand();
cmd.CommandText = s1;
cmd.Connection = objconnection;
cmd.ExecuteNonQuery();

cmd.CommandText = s2;
cmd.Connection = objconnection;
cmd.ExecuteNonQuery();
cmd.CommandText = query;
cmd.Connection = objconnection;
cmd.ExecuteNonQuery();

cmd.Dispose();
btnrestore.Enabled = true;
btnback.Enabled = true;
MessageBox.Show("بانک اطلاعاتی با موفقیت بازگردانی شد", "اعلان");
Application.Restart();
}
}
catch { }