C#操作SQL数据库进行备份
HTML代码:主要为一个Form表单
<form class="form-horizontal">
<div class="panel-body" style="height:400px">
<div class="row reset-row" style="margin-top:20px;">
<label class="col-md-2"></label>
<div class="control-label col-lg-2 col-md-2 col-sm-2">请选择文件路径:</div>
<div class="col-md-6">
<input type="text" class="form-control " id="StrPathtxt" name="JCKaiShiShiJian" />
</div>
<button type="button" class="btn btn-success" id="SelectPath">
<span class="glyphicon glyphicon-file"></span> 备 份
</button>
</div>
<div class="row reset-row" style="margin-top:20px;">
<label class="col-md-2"></label>
<div class="control-label col-lg-2 col-md-2 col-sm-2">输入服务器名称:</div>
<div class="col-md-6">
<input type="text" class="form-control " id="ServiceNametxt" name="JCKaiShiShiJian" />
</div>
</div>
<div class="row reset-row" style="margin-top:20px;">
<label class="col-md-2"></label>
<div class="control-label col-lg-2 col-md-2 col-sm-2">数据库名称:</div>
<div class="col-md-6">
<input type="text" class="form-control " id="DataStoreroomNametxt" name="JCKaiShiShiJian" />
</div>
</div>
<div class="row reset-row" style="margin-top:20px;">
<label class="col-md-2"></label>
<div class="control-label col-lg-2 col-md-2 col-sm-2">备份文件名称:</div>
<div class="col-md-6">
<input type="text" class="form-control " id="FileNametxt" name="JCKaiShiShiJian" />
</div>
</div>
</div>
</form>
Js代码 使用post将获取到的服务器名称、数据库名称、备份文件名称以及文件路径传到控制器
$("#SelectPath").click(function () {
var ServiceNametxt = $("#ServiceNametxt").val();
var DataStoreroomNametxt = $("#DataStoreroomNametxt").val();
var FileNametxt = $("#FileNametxt").val();
var StrPathtxt = $("#StrPathtxt").val();
if (ServiceNametxt != "" && DataStoreroomNametxt != "" && FileNametxt != "" && StrPathtxt != "") {
$.post("/DatabaseBackup/DatabaseBackup/CopyDataStoreRoom", {
ServiceNametxt: ServiceNametxt,DataStoreroomNametxt: DataStoreroomNametxt, FileNametxt: FileNametxt,
StrPathtxt: StrPathtxt
}, function (data) {
if (data == "success") {
layer.alert("数据备份成功!", { skin: 'layui-layer-molv', title: '提示' })
}
else {
layer.alert("数据备份失败!", { skin: 'layui-layer-molv', title: '警告'}); }
}); }
else {
layer.alert("请完善数据再进行备份操作!", { skin: 'layui-layer-molv', title: '警告'});
}
});
后台代码:将获取到的数据库名称等信息去空后作参数传入方法
//备份
public ActionResult CopyDataStoreRoom()
{
try
{
StrServiceName = Request.Form["ServiceNametxt"].Trim();
StrPath = Request.Form["StrPathtxt"].Trim();
string DBO = Request.Form["DataStoreroomNametxt"].Trim();//数据库名称
string NameFile = Request.Form["FileNametxt"].Trim();//备份的数据库名称
int i = SQLBeiFengBak(DBO, NameFile);//S传递参数给方法、
return Json("success", JsonRequestBehavior.AllowGet);
}
catch (Exception)
{
return Json("数据异常!", JsonRequestBehavior.AllowGet);
}
}
下面是对数据库、对路径的操作,其中拼接SQL语句以及打开数据库、执行条件等。
public static SqlConnection Connect;
public string StrServiceName = "";
public string StrPath = "";
int SQLBeiFengBak(string YYG, string NameFile)
{
string connString = @"Data Source='" + StrServiceName + "';Initial Catalog=HosptalZQ; User ID=sa;Password=123";
//string path =strLuJing+"\\";
string strpath = "" + StrPath + "\\";
strpath = strpath.Substring(0, strpath.LastIndexOf("\\"));//截取路径
// strg += @"\Backup";//添加路径信息
string sqltxt =//设置SQL字符串 数据库备份语句
@"BACKUP DATABASE " + YYG + " TO Disk='" + strpath + "\\" + NameFile + ".bak" + "'";
Connect = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sqltxt, Connect);//定义一个SqlCommand类对象,创建连接对象,获取SQL命令和连接
Connect.Open();//打开数据库连接
int StrReturn = Convert.ToInt32(cmd.ExecuteNonQuery());//执行一个非查询条件
Connect.Close();//关闭数据库连接
Connect.Dispose();//释放数据库连接资源
return StrReturn;
}
效果:
成功后为bak文件