سلام
من خودم توی برنامه هام از این کد استفاده میکنم
private void Backup(string filename)
{
try
{
SqlConnection.ClearAllPools();
string commandtext = @"Backup DataBase HesabdariRahatDB To Disk='" + filename + "'";
func.My_command.Connection = func.My_connection;
func.My_command.CommandText = commandtext;
func.My_connection.Open();
func.My_command.ExecuteNonQuery();
this.Cursor = Cursors.Default;
func.My_connection.Close();
MessageBox.Show("پشتیبان گیری با موفقیت انجام شد");
}
catch (Exception ex)
{
MessageBox.Show("خطا در پشتیبان گیری ", ex.Message);
}
finally
{
if(func.My_connection.State==ConnectionState.Open)
{
func.My_connection.Close();
}
}
}
private void پشتیبانگیریToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog SaveBackUp = new SaveFileDialog();
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);
SqlConnection.ClearAllPools();
}
}
private void Restore(string filename)
{
try
{
SqlConnection.ClearAllPools();
string commandtext = "USE master RESTORE DATABASE [HesabdariRahatDB] FROM DISK = N'" + filename + "' WITH RESTRICTED_USER, FILE = 1, NOUNLOAD, REPLACE, STATS = 10";
func.My_command.Connection = func.My_connection;
func.My_command.CommandText = commandtext;
func.My_connection.Open();
func.My_command.ExecuteNonQuery();
func.My_connection.Close();
MessageBox.Show("اطلاعات با موفقیت بازیابی شد");
}
catch (Exception ex)
{
MessageBox.Show( ex.Message);
}
finally
{
if (func.My_connection.State == ConnectionState.Open)
{
func.My_connection.Close();
}
}
}
private void بازیابیاطلاعاتToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog OpenBackUp = new OpenFileDialog();
OpenBackUp.Filter = @"SQL Backup Files ALL Files (*.Bak)|*.Bak";
OpenBackUp.FilterIndex = 1;
if (OpenBackUp.ShowDialog() == DialogResult.OK)
{
Restore(OpenBackUp.FileName);
SqlConnection.ClearAllPools();
}
}
البته یک دی ال ال رو باید به رفرنس هاتون اضافه کنید
اسمش هم FarsiLibrary.Utils هست که برای تقویم فارسی استفاده میشه که داخل کد لازمه