PDA

View Full Version : پشتیبان گیری از بانک اکسس



programerinfonet
چهارشنبه 29 شهریور 1391, 11:43 صبح
سلام دوستان
چه طوری میشه از بانک اکسس نسخه پشتیبان تهیه کرد

ehsan7007
چهارشنبه 29 شهریور 1391, 11:50 صبح
با این کد دوست من:

SaveFileDialog savedialog = new SaveFileDialog();
savedialog.Filter = "*.Backup|*.Backup";
if (savedialog.ShowDialog() == DialogResult.OK)
{
if (savedialog.FileName != "")
{
try
{
if (File.Exists(savedialog.FileName) == true)
File.Delete(savedialog.FileName);
File.Copy(Application.StartupPath + "\\Moshdb.accdb", savedialog.FileName);
MessageBox.Show("از بانک برنامه با موفقيت پشتيبان گرفته شد", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}

می تونی تو باتن بنویسی.
اگر ری استور رو هم خواستی بگو تا بزارم.


موفق باشید.

programerinfonet
چهارشنبه 29 شهریور 1391, 11:51 صبح
به نظر تو بک آپو میگرن تا چی کار کنن
یک روزی ریستور کنن دیگه

ehsan7007
چهارشنبه 29 شهریور 1391, 11:52 صبح
خب گفتی پشتیبان گیری!

OpenFileDialog opendialog = new OpenFileDialog();
opendialog.Filter = "*.Backup |*.Backup";
if (opendialog.ShowDialog() == DialogResult.OK)
{
if (opendialog.FileName != "")
{
try
{
if (MessageBox.Show("آيا ميخواهيد فايل پشتيبان، جايگزين بانک فعلي برنامه شود؟", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
File.Delete(Application.StartupPath + "\\Moshdb.accdb");
File.Copy(opendialog.FileName, Application.StartupPath + "\\Moshdb.accdb");
MessageBox.Show("اطلاعات با موفقيت بازيابي شد", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}

programerinfonet
چهارشنبه 29 شهریور 1391, 12:19 عصر
کد ریستور مشکل داره

programerinfonet
چهارشنبه 29 شهریور 1391, 12:20 عصر
وقتی برنامه اجرا باشه پس بانک هم بازه و وقتی فایلی در حال اجرا باشه پس حذف یا جایگزین نمیشه

ehsan7007
چهارشنبه 29 شهریور 1391, 12:28 عصر
قسمتی از کد ری استور برای قطع ارتباط با دیتابیس رو حذف کردم ؛ چون من بایک برنامه ی دیگه کنار برنامه اصلی از دیتابیس به این شیوه بک آپ و ری استور می کنم ؛ اینطوری هیچ خطا و اروری مبنی بر در حال استفاده بودن بانک نمیده.

می تونی کانکشن استرینگت رو بزاری و ارتباط رو قطع کنی.
اون قسمتش رو خودت اضافه کن.

Mahmoud Zaad
چهارشنبه 29 شهریور 1391, 12:34 عصر
این خط رو اصلاح کنید، فایل موجود بازنویسی(OverWrite) میشه:
File.Copy(opendialog.FileName, Application.StartupPath + "\\Moshdb.accdb", true);
این خط رو هم حذف کنید:
File.Delete(Application.StartupPath + "\\Moshdb.accdb");

programerinfonet
چهارشنبه 29 شهریور 1391, 12:38 عصر
اینم انجام دادم نشد
فکر کنم چون فرم پدر هم کانکشن باز شده بسته نمیشه
راه دیگه برای ری استور کردن نیست ؟؟

ehsan7007
چهارشنبه 29 شهریور 1391, 12:47 عصر
کانکشنت رو چطوری بستی؟
یک راهه خیلی خوب اینه که یک برنامه ی کوچیک دیگه برای این منظور درست کنی و اونرو کنار برنامه اصلیت قرار بدی.
حالا از برنامه اصلی کاربر اگه خواست بک آپ بگیره یا ری استور کنه ، برنامه فرعیت باز می شه.

در ضمن چیزی که میثم جان گفت ، جواب سوال شما نبود و اصلاح کد بود ؛ اونطوری به جای حذف و کپی فایل OverWrite می شه.


موفق باشید.