PDA

View Full Version : Backup و Restore دیتابیس با Stored Procedure ها



bivatan
سه شنبه 01 خرداد 1397, 01:37 صبح
سلام
من داخلSQL یه SP ساختم به نام pDBBackup


ALTER procedure [dbo].[pDBBackup]
@BackupName varchar(50)
As

BACKUP DATABASE [anbardari] TO DISK = @BackupName
WITH
compression,
NOFORMAT,
NOINIT,
NAME = N'Full Database Backup',
SKIP,
NOREWIND,
NOUNLOAD,
STATS =10
RETURN


این SP از داخل SQL کار میکنه و فایل بکاپ ساخته میشه .

حالا میخوام از داخل کدها path + filename.bak رو به @BackupName بفرستم و sp اجرا بشه . همه چیز درست کار میکنه . حتی BackupName@ درست ساخته میشه اما توی خط آخرم وقتی که روی باتن کلیک میکنم برنامه به catch میپره .

کد باتنم به صورت زیر هست:


private void btn_getbackup_click(object sender, RoutedEventArgs e)
{
try
{

Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
dlg.Filter = @"SQL Backup files (*.bak) |*.bak|All files (*.*) |*.*";
dlg.DefaultExt = "bak";
dlg.InitialDirectory = "D:";
dlg.FileName = publicvariable.guserid + "_" + String.Format("{0:yyyyMMdd}", Convert.ToDateTime(calender_set.Text)) + "_" + String.Format("{0:00}", DateTime.Now.Hour) + "" + String.Format("{0:00}", DateTime.Now.Minute) + "" + String.Format("{0:00}", DateTime.Now.Second);
string filename = "";
string path = "";

if (dlg.ShowDialog() == true)
{
filename = System.IO.Path.GetFileName(dlg.FileName);
path = System.IO.Path.GetDirectoryName(dlg.FileName);

payegah.pDBBackup("'"+dlg.FileName+"'");


}


else
{
System.Windows.MessageBox.Show("نام فایل غیر معتبر می باشد");
return;
}



System.Windows.MessageBox.Show("پشتیبان گیری با موفقیت انجام شد");
}

catch(Exception ex)
{
System.Windows.MessageBox.Show("خطایی در پشتیبان گیری به وجود آمده " + ex.ToString());
}

}



148228148229

ممنون میشم راهنمایی کنید .