使用C#备份数据库


备份没问题

// 备份方法
// 要修改Database,User ID,Password(SQL验证模式)
// 数据库名,验证id,验证密码(需要数据库设置为SQL验证)
SqlConnection conn = new SqlConnection("Server=.;Database=water;User ID=sa;Password=sa;");

SqlCommand cmdBK = new SqlCommand();
cmdBK.CommandType = CommandType.Text;
cmdBK.Connection = conn;
// 文件位置
string rootPath = Server.MapPath("~/");
string filePath = rootPath + "water.bak";
// 要修改database名字
cmdBK.CommandText = "backup database water to disk='" + filePath + "' with init";

try
{
    conn.Open();
    cmdBK.ExecuteNonQuery();
    Response.Write("<script>alert('备份成功!')</script>");
}
catch (Exception)
{
    Response.Write("<script>alert('备份失败!')</script>");
}
finally
{
    conn.Close();
    conn.Dispose();
}

恢复出bug

// 还原方法
// 要修改Database,User ID,Password(SQL验证模式)
SqlConnection conn = new SqlConnection("Server=.;Database=master;User ID=sa;Password=sa;Trusted_Connection=False");
conn.Open();

//KILL DataBase Process
SqlCommand cmd = new SqlCommand("SELECT spid FROM sysprocesses ,sysdatabases WHERE sysprocesses.dbid=sysdatabases.dbid AND sysdatabases.Name='test'", conn);
SqlDataReader dr;
dr = cmd.ExecuteReader();
ArrayList list = new ArrayList();
while(dr.Read())
{
	list.Add(dr.GetInt16(0));
}
dr.Close();
for(int i = 0; i < list.Count; i++)
{
	cmd = new SqlCommand(string.Format("KILL {0}", list[i]), conn);
	cmd.ExecuteNonQuery();
}

SqlCommand cmdRT = new SqlCommand();
cmdRT.CommandType = CommandType.Text;
cmdRT.Connection = conn;
// 文件位置
string rootPath = Server.MapPath("~/");
string filePath = rootPath + "water.bak";
// 要修改database名字
cmdBK.CommandText = "restore database water from disk='" + filePath + "'";

try
{
	cmdRT.ExecuteNonQuery();
	MessageBox.Show("Restore successed.");
}
catch(Exception ex)
{
	MessageBox.Show(ex.Message);
}
finally
{
	conn.Close();
}

Reference

使用C#备份数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值