存储过程的SQL代码:
ALTER PROCEDURE USP_DBBackup
@BackPath nvarchar(100), --存储目录.
@BackName nvarchar(50) --存储数据库名.
AS
SET NOCOUNT ON declare @name nvarchar(4000)
select @name = rtrim(ltrim(@name)) if exists (SELECT Name FROM Master..SysDatabases where name = 'PersonnelManagementSystem') --寻找指定的数据库.
set @name= 'PersonnelManagementSystem' declare @outpath nvarchar(4000)
select @outpath = @BackPath +'\'+ @BackName --拼接总路径. backup database @name to disk= @outpath
Winform中调用存储过程的C#代码:
//备份.
private void btnBackConfirm_Click(object sender, EventArgs e) {
string strConn = @"Data Source=.\SQLExpress;Initial Catalog=PersonnelManagementSystem;Integrated Security=True";
using(SqlConnection connect = new SqlConnection(strConn)) {
connect.Open();
using(SqlCommand cmd = connect.CreateCommand()) {
cmd.CommandText = "USP_DBBackup";
cmd.Parameters.Clear();
cmd.Parameters.Add("@BackPath", SqlDbType.NVarChar, ).Value = txtBackPath.Text.Trim(); //存储路径.
cmd.Parameters.Add("@BackName", SqlDbType.NVarChar, ).Value = txtBackNewDBName.Text.Trim(); //存储数据库名.
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
}
}
MessageBox.Show("Done!");
}