PDA

View Full Version : backup گیری از طریق برنامه #c



ILYA
دوشنبه 20 مهر 1383, 10:23 صبح
سلام به همه دوستان
من می خواهم از طریق برنامه #c از پایگاه داده ام backup بگیرم ، همچنین امکان restore هم وجود داشته باشه .
آیا من می تونم به صورت زیر این کار را انجام بدهم آیا این کار اصولی هست .
چه راه دیگه ای ممکن وجود داشته باشه ، میشه برام توضیح بدید ؟


private void btnback_Click(object sender, System.EventArgs e)
{
System.Data.SqlClient.SqlCommand cm1 = new System.Data.SqlClient.SqlCommand();
cm1.Connection=sqlConnection1;
saveFileDialog1.ShowDialog();
string filenames=saveFileDialog1.FileName;
cm1.CommandText = "BACKUP DATABASE dbname to DISK ='"+filenames+"'";
cm1.ExecuteNonQuery();
}
private void restore_Click(object sender, System.EventArgs e)
{
System.Data.SqlClient.SqlCommand cm2 = new System.Data.SqlClient.SqlCommand();
cm2.Connection=sqlConnection1;
openFileDialog1.ShowDialog();
string filenames=openFileDialog1.FileName;
cm2.CommandText = "RESTORE DATABASE dbname FROM DISK ='"+filenames+"'";
cm2.ExecuteNonQuery();
}

ببخشید که این طوری شد .

Vahid_Nasiri
دوشنبه 20 مهر 1383, 17:41 عصر
بله میشه! من این روش رو تست کردم (بک آپ گیری از طریق T-SQL ).
کاملا جواب می دهد و مشکلی ندارد. اما اگر حجم دیتابیس بالا باشد باید مواظب time out های صفحه ی وب باشید. (البته اینجا که ویندوز اپلیکیشن است زیاد نگران این مورد نباشید.)
در ادامه می تونید فایل بک آپ گرفته شده رو با استفاده از کامپوننت های zip (مانند sharpZIP ) ، فشرده کنید و به هر جایی که مایل بودید انتقال دهید (چون یک بک آپ 100 مگی اس کیوال سرور بعد از زیپ شدن حدود 5-6 مگ بیشتر نمی شود)