PDA

View Full Version : مشکل در رستور کردن دیتابیس در مسیر دلخواه کاربر



hadi_12766
سه شنبه 07 آبان 1392, 10:37 صبح
با سلام خدمت دوستان .:لبخندساده:
امیدوارم بتونید کمکم کنید .
سناریو : برنامه ای نوشتم که کاربر می تونه بره فایل بک آپ رو از هر مسیر دلخواه انتخاب کنه

string strFileName = string.Empty;
FileOpen.Filter = @"SQL Backup files (*.BAK) |*.BAK";
FileOpen.FilterIndex = 1;
FileOpen.Title = "Restore SQL File";
FileOpen.CheckFileExists = false;

if (FileOpen.ShowDialog() == DialogResult.OK)
{
strFileName = FileOpen.FileName;
}

و مسیری دلخواه جدیدی رو برای ذخیرش ( رستور ) انتخاب کنه

string strFileName1 = string.Empty;
FileSave.DefaultExt = "MDF";
FileSave.FileName = Path.GetFileNameWithoutExtension(strFileName);
FileSave.Filter = @"SQL files (*.MDF) |*.MDF";
FileSave.FilterIndex = 1;
FileSave.OverwritePrompt = true;
FileSave.Title = "SQL File";
FileSave.CheckFileExists = false;

if (FileSave.ShowDialog() == DialogResult.OK)
{
strFileName1 = FileSave.FileName;
}

حالا من کد زیر رو نوشتم اما بهم خطا میده چون نمیتونه فایل mdf رو که هنوز در مسیر ذخیره وجود نداره فایل بک اپ رو جایگزینش اون کنه ( قانون رستور کردن ) بیزحمت راهنماییم کنید چطوری سورس زیر رو تغییر بدم تا مشکل حل بشه . :متفکر: با سپاس فراوان

oConnection = new SqlConnection("Data Source=.\\SQLEXPRESS; AttachDbFilename=" + strFileName1 + @"; Integrated Security=True; Connect Timeout=30 ; User Instance=True;");
string command = "ALTER DATABASE [" + strFileName1 + @"] SET SINGLE_USER with ROLLBACK IMMEDIATE use master RESTORE DATABASE [" + strFileName1 + @"] FROM DISK='" + strFileName + "'";

hadi_12766
پنج شنبه 09 آبان 1392, 08:11 صبح
هیچ راهی وجود نداره .
مگر اینکه یک کپی از بانک اصلی (.MDF) در مسیر همون رستور قرار بدم و رستور روی همون اجرا بشه .
یک مطلب تو همین سایت خوندم که دوستی گفته بود باید از بانک MASTER استفاده کنی ولی متوجه نشدم چطور این کار رو انجام داده ( البته به نقل خودش ) .
فعلا مشکل حل شد ولی این صورت مسله پاک کردنه نه راه حل اون .