PDA

View Full Version : مشکل در بکاپ یا کانکشن استرینگ؟



md_davari
دوشنبه 24 مرداد 1390, 12:53 عصر
با سلام خدمت شما عزیزان
من برای بکاپ گیری از کانکشن استرینگ زیر استفاده میکنم
@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\myDatabase.mdf;
Initial Catalog=myDatabase;Integrated Security=True;User Instance=True";

و کد بکاپ گیری به صورت زیر است
string command = "BACKUP DATABASE myDatabase TO DISK='H:/dbBak/myDB.BAK '";

string connectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\myDatabase.mdf;
Initial Catalog=myDatabase;Integrated Security=True;User Instance=True";


SqlConnection conn = new SqlConnection(connectionString);
SqlCommand com = new SqlCommand();
com.Connection = conn;
if (conn.State != ConnectionState.Open)
{
com.CommandText = command;
conn.Open();
com.ExecuteNonQuery();
conn.Close();
this.Cursor = Cursors.Default;
MessageBox.Show("تهیه نسخه پشتیبان با موفقیت به پایان رسید");

}
}
catch (Exception ex)
{
MessageBox.Show("Error Occured: " + ex.Message, "خطا");

}
ولی با پیغام خطای زیر مواجه میشم
Unable to open the physical file "D:\Documents and Settings\smm\My Documents\Visual Studio 2008\Projects\backup_test\backup_test\bin\Debug\my Database.mdf". Operating system error 32: "32(error not found)".
Cannot attach the file 'D:\Documents and Settings\smm\My Documents\Visual Studio 2008\Projects\backup_test\backup_test\bin\Debug\my Database.mdf' as database 'myDatabase'.
میتونید به من کمک کنید
خیلی گشتم ولی عیبم را پیدا نکردم.
فایل فیزیکال موجوده و تمام اعمال insert , update, ... را با همین کانکشن استرینگ انجام میده ولی برای بک آپ گیر میده

sara213
پنج شنبه 03 شهریور 1390, 18:05 عصر
سلام
اگر MYDATABASE نام پایگاه داده ای است که میخواهید ازش بک اپ بگیرید اینجا نباید نامش باشه به جای اون MASTER بزارید .حتما میدونید که این کد ها باید در صفحه اول باشه که دیتابیسی که میخواهید ازش بکاپ بگیرید در حال استفاده نباشه

حمیدرضاصادقیان
شنبه 05 شهریور 1390, 08:28 صبح
سلام
اگر MYDATABASE نام پایگاه داده ای است که میخواهید ازش بک اپ بگیرید اینجا نباید نامش باشه به جای اون MASTER بزارید .حتما میدونید که این کد ها باید در صفحه اول باشه که دیتابیسی که میخواهید ازش بکاپ بگیرید در حال استفاده نباشه
دوست عزیز اگر به جای نام دیتابیسشون Master رو بذارن از دیتابیس Master یک Backup میگیرن نه از دیتابیس خودشون.
مورد دیگر اینکه در حال استفاده بودن دیتابیس ارتباطی به تهیه پشتیبان نداره و مشکلی ایجاد نمیکنه.

مشکل اینه که این فایل از این مسیر در دسترس نیست. شما ببینید این فایل MDF شما در این مسیر هست یا نه.
در ضمن این هم به این شکل بنویسید.


string command = "BACKUP DATABASE myDatabase TO DISK='H:\\dbBak\\myDB.BAK '";



مورد بعدی اینکه بعد از attach کردن باید از دیتابیس Backup بگیرید نه قبل از اون! اینجوری دیتابیسی پیدا نمیکنه که بخواد ازش Backup بگیره.