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>&nbsp;备 份
                    </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文件

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_43100896/article/details/87899961