سلام دوستان
چه طوری میشه از بانک اکسس نسخه پشتیبان تهیه کرد
سلام دوستان
چه طوری میشه از بانک اکسس نسخه پشتیبان تهیه کرد
با این کد دوست من:
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);
}
}
}
می تونی تو باتن بنویسی.
اگر ری استور رو هم خواستی بگو تا بزارم.
موفق باشید.
به نظر تو بک آپو میگرن تا چی کار کنن
یک روزی ریستور کنن دیگه
خب گفتی پشتیبان گیری!
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);
}
}
}
آخرین ویرایش به وسیله ehsan7007 : جمعه 14 مهر 1391 در 18:31 عصر
کد ریستور مشکل داره
وقتی برنامه اجرا باشه پس بانک هم بازه و وقتی فایلی در حال اجرا باشه پس حذف یا جایگزین نمیشه
قسمتی از کد ری استور برای قطع ارتباط با دیتابیس رو حذف کردم ؛ چون من بایک برنامه ی دیگه کنار برنامه اصلی از دیتابیس به این شیوه بک آپ و ری استور می کنم ؛ اینطوری هیچ خطا و اروری مبنی بر در حال استفاده بودن بانک نمیده.
می تونی کانکشن استرینگت رو بزاری و ارتباط رو قطع کنی.
اون قسمتش رو خودت اضافه کن.
این خط رو اصلاح کنید، فایل موجود بازنویسی(OverWrite) میشه:
File.Copy(opendialog.FileName, Application.StartupPath + "\\Moshdb.accdb", true);
این خط رو هم حذف کنید:
File.Delete(Application.StartupPath + "\\Moshdb.accdb");
اینم انجام دادم نشد
فکر کنم چون فرم پدر هم کانکشن باز شده بسته نمیشه
راه دیگه برای ری استور کردن نیست ؟؟
کانکشنت رو چطوری بستی؟
یک راهه خیلی خوب اینه که یک برنامه ی کوچیک دیگه برای این منظور درست کنی و اونرو کنار برنامه اصلیت قرار بدی.
حالا از برنامه اصلی کاربر اگه خواست بک آپ بگیره یا ری استور کنه ، برنامه فرعیت باز می شه.
در ضمن چیزی که میثم جان گفت ، جواب سوال شما نبود و اصلاح کد بود ؛ اونطوری به جای حذف و کپی فایل OverWrite می شه.
موفق باشید.
آخرین ویرایش به وسیله ehsan7007 : پنج شنبه 21 دی 1391 در 07:50 صبح