0 امتیاز
با سلام

من از wpf استفاده کردم و connection stringهم به صورت داینامیک هست

در یکی از فرم هام قسمتی هست برای بک آپ گیری از اطلاعات اما کدش رو نمیدونم

ممنون میشم اگه کسی میدونه راهنمایی کنه

2 پاسخ

0 امتیاز

متد اول تهیه نسخه پشتیبان :



private void Backup(string filename)

{

try

{

string command = @”Backup DataBase DBName To Disk='” + filename + “‘”;

this.Cursor = Cursors.WaitCursor;

SqlCommand ocommand = null;

SqlConnection oconnection = null;

oconnection = new SqlConnection(“Data Source=(local);Initial Catalog=DBName ;user id=sa”);

if (oconnection.State != ConnectionState.Open)

oconnection.Open();

ocommand = new SqlCommand(command, oconnection);

ocommand.ExecuteNonQuery();

this.Cursor = Cursors.Default;

MessageBox.Show(“تهیه نسخه پشتیبان از اطلا عات با موفقیت انجام شد”);

}

catch (Exception ex)

{

MessageBox.Show(“Error : “, ex.Message);

}

}

 

 

متد دیگر بازگرداندن پشتیبان :

private void Restore(string filename)

{

try

{

string command = @”ALTER DATABASE DBName  SET SINGLE_USER with ROLLBACK IMMEDIATE ” + “ USE master ” + ” RESTORE DATABASE DBName FROM DISK= N'” + filename + “‘”;

//string command = @”RESTORE DATABASE  DBName FROM DISK ='” + filename + “‘ “;

this.Cursor = Cursors.WaitCursor;

SqlCommand ocommand = null;

SqlConnection oconnection = null;

oconnection = new SqlConnection(“Data Source=(local);Initial Catalog=DBName ;user id=sa”);

if (oconnection.State != ConnectionState.Open)

oconnection.Open();

ocommand = new SqlCommand(command, oconnection);

ocommand.ExecuteNonQuery();

this.Cursor = Cursors.Default;

MessageBox.Show(“بازیابی اطلاعات از  نسخه پشتیبان از  با موفقیت انجام شد”);

}

catch (Exception ex)

{

MessageBox.Show(“Error : “, ex.Message);

}

}

برای اینکه مطمئن شویم از اینکه به بانک ارتباطی نداریم از دستور use master استفاده کرده ایم و بعد از بررسی عمل بازگردانی انجام می شود.


بعد این دو متد به سراغ دکمه هایی برای تهیه پشتیبان و بازگردانی میرویم که به شرح ذیر می باشد :



private void BackUpBtn_Click(object sender, EventArgs e)

{

string filename = string.Empty;

SaveBackUp.OverwritePrompt = true;

SaveBackUp.DefaultExt = “”;

SaveBackUp.Filter = @”SQL Backup Files ALL Files (*.*) |*.*| (*.Bak)|*.Bak”;

SaveBackUp.FilterIndex = 1;

string DateDay = FarsiLibrary.Utils.PersianDate.Now.ToString().Substring(0, 10);//بر اساس تاریخ شمسی ذخیره می کند

SaveBackUp.FileName = DateDay.Replace(“/”, “”) + “_” + DateTime.Now.Hour.ToString() + “-” + DateTime.Now.Minute.ToString() + “-” +   DateTime.Now.Second.ToString();

SaveBackUp.Title = “Backup SQL File”;

if (SaveBackUp.ShowDialog() == DialogResult.OK)

{

filename = SaveBackUp.FileName;

Backup(filename);

}

}

 

 

 

private void RestoreBtn_Click(object sender, EventArgs e)

{

string filename = string.Empty;

OpenBackUp.Filter = @”SQL Backup Files ALL Files (*.*) |*.*| (*.Bak)|*.Bak”;

OpenBackUp.FilterIndex = 1;

OpenBackUp.Filter = @”SQL Backup Files (*.*)|”;

 

string DateDay = FarsiLibrary.Utils.PersianDate.Now.ToString().Substring(0, 10);

OpenBackUp.FileName = DateDay.Replace(“/”, “”) + “_” + DateTime.Now.Hour.ToString() + “-” + DateTime.Now.Minute.ToString() + “-” + DateTime.Now.Second.ToString();

if (OpenBackUp.ShowDialog() == DialogResult.OK)

{

filename = OpenBackUp.FileName;

Restore(filename);

}

}

 

اگر برای ریستور کردن دکمه ای نباشه باز هم باید کدهاشو بنویسم؟
توسط (102 امتیاز) 4
شما باید یک دکمه برای ریستور و یک دکمه برای بکاپ بزارین. البته میتونید از دو تا دکمه رادیویی استفاده کنید و بعد با یک دکمه بر اساس انتخاب کارتون رو انجام بدین
توسط (3,062 امتیاز) 1
سوال جدید

2,336 سوال

2,871 پاسخ

3,725 دیدگاه

3,917 کاربر

دسته بندی ها

...