PDA

View Full Version : Backup & Restore With LINQ - بکاپ و ریستور در نرم افزاری که طراحی کردیم به کمک linq



saeidghadiri
جمعه 23 مرداد 1394, 12:06 عصر
Backup & Restore With LINQ - بکاپ و ریستور در نرم افزاری که طراحی کردیم به کمک لینک

با سلام
من تو انجمن حدود 6 7 ساعت گشتم و تمام تاپیک های مربوط به این موضوع رو کامل دیدم و هر چی که بود رو تست کردم اما هیچ کدوم به وسیله لینک نبود همه از روش قدیمی که تازه من توی اون همه تاپیک 2 مورد پیدا کردم که تازه بکاپ میگیره و ریستور نمیکنه! فقط در مورد SMO مطلب جالبی دیدم که بلد نیستم باهاش کار کنم.

من از SQLSERVER 2014 استفاده می کنم برای برنامه ام و تازه کارم

میشه راهنماییم کنید چطور به فرم بکاپ و ریستور به شیوه جدید بدون درسر بزارم که حتی روی سیستمی SQL Express بود این عمل رو انجام بده؟؟؟

davidrobert
جمعه 23 مرداد 1394, 13:12 عصر
من از ای اف استفاده میکنم ولی این کد نویسی ریستور بکاپ عالی هستش.و از smo استفاده کرده وقتی ریستور و بکاپ بشه نیازی نیست دیتابیس یا برنامه بسته بشه همون جا در جا اطلاعات میاد.
http://uplod.ir/dj305bia0otl/Backup_Restore.7z.htm
فیلم کم هستش زمانش ولی باید توجه کنید چطور هستش.

saeidghadiri
جمعه 23 مرداد 1394, 16:09 عصر
سلام نحوه اجرای Backup_Restore.cs رو میشه توضیح بدید؟

من Conection String رو درست کردم SMO.dll رو اضافه کردم توی فرم .cs رو چطور فراخوانی کنم.

saeidghadiri
شنبه 24 مرداد 1394, 11:34 صبح
در رابطه با این تاپیک کسی Example داره که بزاره؟ لطفا.

davidrobert
شنبه 24 مرداد 1394, 15:06 عصر
دوست عزیز اون فیلم اموزشی که دادم ببین که چطور Dll ها رو به رفرینس اضافه کنید و دوم این سورس ریستور و بکاپ با smo
تنها کاری که باید بکونی تو فرم این دستور ها رو بنویسی تا از اسکیول سرور ریستور و بکاپ بگیری.

private string BackUpConString = @"Data Source=.\SQLEXPRESS;Initial Catalog=DBAPCS;Integrated Security=True";//Connection String baraye Dastyabi be Data base Asli
private string ReStoreConString = @"Data Source=.\SQLEXPRESS;Initial Catalog=master;Integrated Security=True";//Connection String baraye dastresi be data base Master


//------------------------------------------------------------

public void Dispose()
{
GC.SuppressFinalize(this);
}


این هم دستور ریستور و بکاپ به همراه صدا زدنش در فرم.
public void ReStorMyDB()
{
if (MessageBoxShow.Show("تمام داده دیتابیس تغییر میکنن!!! \n آیا موافق می باشید, انتخاب \"Yes\".","بازگردانی دیتابیس", MessageBoxShow.Buttons.YesNo, MessageBoxShow.Icons.Question) == DialogResult.Yes)
{

SqlConnection.ClearAllPools();
using (SqlConnection con = new SqlConnection(ReStoreConString))
{
ServerConnection srvConn = new ServerConnection(con);
Server srvr = new Server(srvConn);

if (srvr != null)
{
try
{

Restore rstDatabase = new Restore();
rstDatabase.Action = RestoreActionType.Database;
rstDatabase.Database = "DBAPCS";//Bayad ham nam ba Data base barname tanzim shavad
OpenFileDialog opfd = new OpenFileDialog();
opfd.Filter = "فایل پشتیبان گیری|*.bak";
opfd.Title = "بازگردانی دیتابیس";
if (opfd.ShowDialog() == DialogResult.OK)
{


BackupDeviceItem bkpDevice = new BackupDeviceItem(opfd.FileName, DeviceType.File);

rstDatabase.Devices.Add(bkpDevice);
rstDatabase.ReplaceDatabase = true;
//progressBarX1.Visible = true;

//progressBarX1.PerformStep();
//progressBarX1.Value = 100;
//progressBarX1.Text = "%" + progressBarX1.Value.ToString() + ": درصد بازگردانی";
rstDatabase.SqlRestore(srvr);
//progressBarX1.Value = 0;
//progressBarX1.Visible = false;
MessageBoxShow.Show("بازگردانی دیتابیس موفق آمیز بود.", "سرور", MessageBoxShow.Buttons.OK, MessageBoxShow.Icons.Information);
}
}
catch
{
ClsShowMessageBoxError.Error(114, "", "");
}
}
}

}
}

public void BackUpMyDB()
{
System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar();
string date = pc.GetYear(DateTime.Now) + "-" + pc.GetMonth(DateTime.Now) + "-" +
pc.GetDayOfMonth(DateTime.Now);
System.Globalization.PersianCalendar pcc = new System.Globalization.PersianCalendar();
DateTime tm = new DateTime();
tm = DateTime.Now;
string timenow = pcc.GetHour(tm).ToString() + "_" + pcc.GetMinute(tm).ToString() + "_" +
pcc.GetSecond(tm).ToString();


using (SqlConnection con = new SqlConnection(BackUpConString))
{
ServerConnection srvConn = new ServerConnection(con);
Server srvr = new Server(srvConn);

if (srvr != null)
{
try
{


Backup bkpDatabase = new Backup();
bkpDatabase.Action = BackupActionType.Database;
bkpDatabase.Database = "DBAPCS"; //Bayad ham nam ba Data base barname tanzim shavad
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "فایل پشتیبان گییری|*.bak";
sfd.Title = "پشتیبان گیری";
sfd.FileName = "Backup_FileDataBase" + date + " " + timenow;
if (sfd.ShowDialog() == DialogResult.OK)
{
BackupDeviceItem bkpDevice = new BackupDeviceItem(sfd.FileName, DeviceType.File);
bkpDatabase.Devices.Add(bkpDevice);
//progressBarX1.Visible = true;

//progressBarX1.PerformStep();
//progressBarX1.Value = 100;
//progressBarX1.Text = "%" + progressBarX1.Value.ToString() + ": درصد پشتیبان گیری";
bkpDatabase.SqlBackup(srvr);
//progressBarX1.Value = 0;
//progressBarX1.Visible = false;
MessageBoxShow.Show("پشتیبان گیری با موفقعیت به انجام رسید", "سرور",
MessageBoxShow.Buttons.OK, MessageBoxShow.Icons.Information);

}
}
catch
{
ClsShowMessageBoxError.Error(115, "", "");
}
}
}
}
private void ذخیرهوپشتیبانگیریToolStripMenuIte m_Click(object sender, EventArgs e)
{
BackUpMyDB();
}

private void پشتیبانگیریToolStripMenuItem_Click(obje ct sender, EventArgs e)
{
BackUpMyDB();
}

private void بازگردانیToolStripMenuItem_Click(object sender, EventArgs e)
{
ReStorMyDB();
}

private void برگشتوبازیابیToolStripMenuItem_Click( object sender, EventArgs e)
{
ReStorMyDB();
}

saeidghadiri
شنبه 24 مرداد 1394, 22:59 عصر
زدم پر خطا ست

omid nasri
یک شنبه 25 مرداد 1394, 00:48 صبح
جواب شما در این مقاله + نمونه کد:

http://www.codeproject.com/Tips/873677/SQL-Server-Database-Backup-and-Restore-in-Csharp

davidrobert
یک شنبه 25 مرداد 1394, 16:16 عصر
زدم پر خطا ست

دوست عزیز اون خطا نداره شما باید زحمت بکشید اون فیلم تصویری رو ببنید و داخل فیلم تصویری دیده باشید داره فایل dll به رفرینس برنامه اضافه میکنه شما اون فایل ها رو اضافه کنید مشکلتون حل میشه.فیلم که دادم 3 دقیقه هستش رو ببنید. و هر چند ثانیه استاب کنید تا ببنید.

saeidghadiri
یک شنبه 25 مرداد 1394, 20:45 عصر
واقعا دیدم فیلم رو و Dll های SMO,... غیره رو به Refrence اضافه کردم و اون اطلاعات رو در BTN-Backup اضافه کردم. دروغ نمیگم که، نمیشه. حالا شما ببخشید وقتت رو گرفتم.

davidrobert
دوشنبه 26 مرداد 1394, 16:28 عصر
واقعا دیدم فیلم رو و Dll های SMO,... غیره رو به Refrence اضافه کردم و اون اطلاعات رو در BTN-Backup اضافه کردم. دروغ نمیگم که، نمیشه. حالا شما ببخشید وقتت رو گرفتم.

دوست عزیز اسم دیتابیس رو خطا داد کانکشن رو خطا داد یا کادر پیام رو که اینها مربوط به اطلاعات من میشه. شما تصویری از خطا بزارید بدونم منظور شما از خطا چی هستش.تصویر قرار بدید از خطا کد نه کد رو. که ببینم کدم دستور ها قرمز شده

saeidghadiri
سه شنبه 03 شهریور 1394, 19:53 عصر
دوست عزیز اسم دیتابیس رو خطا داد کانکشن رو خطا داد یا کادر پیام رو که اینها مربوط به اطلاعات من میشه. شما تصویری از خطا بزارید بدونم منظور شما از خطا چی هستش.تصویر قرار بدید از خطا کد نه کد رو. که ببینم کدم دستور ها قرمز شده

سلام بکاپش فکر کنم درست شدش یه فایل با پسوند .BK30rosTel ذخیره میکنه نمیدونم این پسوند چی هست. ولی تو قسمت ریستور OFD باز میشه اما این فایل با این پسوند رو دیگه نمیبینه! راهنمایی کن ممنون

saeidghadiri
سه شنبه 03 شهریور 1394, 20:03 عصر
سلام میشه اینجوری طراحی کرد؟
2 تا Combo باشه یکی اسم SERVERNAME رو بگیره دومی نام دیتابیس
2 تا TextBox باشه User,Pass برای Authentication بعد تو دکمه ثبت کد Backupباشه تو دکمه بازگشت داده هم کد Restore