PDA

View Full Version : آموزش: BACKUP & RESTORE + SQL SERVER 2005



mostafarastin239
چهارشنبه 25 فروردین 1389, 18:59 عصر
سلام
همین الان با کدهای زیر جواب گرفتم :


public string Miladi2Shamsi(DateTime _date)
{
PersianCalendar pc = new PersianCalendar();
StringBuilder sb = new StringBuilder();
sb.Append(pc.GetYear(_date).ToString("0000"));
sb.Append("_");
sb.Append(pc.GetMonth(_date).ToString("00"));
sb.Append("_");
sb.Append(pc.GetDayOfMonth(_date).ToString("00"));
return sb.ToString();
}

private void btn_backup_Click(object sender, EventArgs e)
{
//string strFileName = string.Empty;
//SaveFileDialog saveFileDialog1 = new SaveFileDialog();
//saveFileDialog1.DefaultExt = "BAK";
//string today = Miladi2Shamsi(DateTime.Today);
//saveFileDialog1.FileName = "BF" + today;
//saveFileDialog1.Filter = @"SQL Backup files (*.BAK) |*.BAK|All files(*.*) |*.*";
//saveFileDialog1.Title = "پشتیبان گیری از پایگاه داده";
//if (saveFileDialog1.ShowDialog() == DialogResult.OK)
//{
// strFileName = saveFileDialog1.FileName;
Backup();//strFileName);
//}
}

private void Backup()//string strFileName)
{
try
{
SqlConnection objconnection = new SqlConnection("SERVER = RASTIN\\SQLEXPRESS ; DATABASE = PAYGAH ; INTEGRATED SECURITY = true;");
SqlCommand objcommand = new SqlCommand();
objcommand.Connection = objconnection;
string today = Miladi2Shamsi(DateTime.Today);
objcommand.CommandText = "BACKUP DATABASE DATABASE_NAME TO DISK = 'D:backupfile.bak' WITH FORMAT";
objconnection.Open();
objcommand.ExecuteNonQuery();
objconnection.Close();
MessageBox.Show("تهيه نسخه پشتيبان از اطلاعات با موفقيت انجام شد");
}
catch (Exception ex)
{
MessageBox.Show("Error Occurd :" + ex.Message);
}
}

private void btn_restore_Click(object sender, EventArgs e)
{
//OpenFileDialog openFileDialog1 = new OpenFileDialog();
//SaveFileDialog saveFileDialog1 = new SaveFileDialog();
//string strFileName = string.Empty;
//openFileDialog1.Filter = @"SQL Backup files (*.BAK) |*.BAK|All files(*.*) |*.*";
//openFileDialog1.Title = "بازیابی پایگاه داده";
//if (openFileDialog1.ShowDialog() == DialogResult.OK)
//{
// strFileName = saveFileDialog1.FileName;
Restore();//strFileName);
//}
}

private void Restore()//string strFileName)
{
try
{
SqlConnection objconnection = new SqlConnection("SERVER = RASTIN\\SQLEXPRESS ; DATABASE = PAYGAH ; INTEGRATED SECURITY = true;");
SqlCommand objcommand = new SqlCommand();
objcommand.Connection = objconnection;
objcommand.CommandText = "use master " + "ALTER DATABASE paygah SET SINGLE_USER with ROLLBACK IMMEDIATE " + "RESTORE DATABASE DATABASE_NAME FROM DISK ='D:backupfile.bak';";
objconnection.Open();
objcommand.ExecuteNonQuery();
objconnection.Close();
MessageBox.Show("بازيابی اطلاعات از نسخه پشتيبان با موفقيت انجام شد");
}
catch (Exception ex)
{
MessageBox.Show("Error Occurd :" + ex.Message);
}
}
برای جواب گرفتن فقط DATABASE_NAME را به نام پایگاه داده خود تغییر دهید و برنامه را اجرا کنید. اگر برنامه اجرا شد تشکر یادت نره.
با تشکر

mahdiazadbar
پنج شنبه 23 دی 1389, 13:26 عصر
اطلاعات تو جدولها بعد از بازیابی نمیاد. چرا؟

hossin.esm
پنج شنبه 23 دی 1389, 15:04 عصر
لینک زیر را هم ببینید (کامل تر)
http://barnamenevis.org/showthread.php?64210-نمونه-برنامه-های-کوچک-و-مفيد-در-سي-شارپ&p=1172369&viewfull=1#post1172369