在web中,安全性主要体现在两个方面:一个是程序安全性,即防止网页在插入恶意代码;另一个是数据库安全性,这个我们可以经常备份数据库来实现。
在文中,我将演示如果在网页中备份和恢复数据库。
其实备份和恢复数据库都是利用SQL Server提供的SQL语句来备份的。
备份:use master;backup database @name to disk=@path;
恢复:use master;restore database @name from disk=@path;
上面用的是参数化SQL语句,可以在程序执行的时候动态给参数赋值。

代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DatabaseAction.aspx.cs" Inherits="DatabaseAction" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>網絡大本營(From:www.QQView.com)</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <table border="0" width="100%">
    <tr><td colspan="2">数据库还原和备份</td></tr>
    <tr><td>请选择数据库</td><td>
        <asp:DropDownList ID="ddlDatabaseList" runat="server">
        </asp:DropDownList></td></tr>
    <tr><td>
        数据库文件名</td><td>
        <asp:TextBox ID="txtDbFileName" runat="server"></asp:TextBox></td></tr>
    <tr><td>
        操作选项</td><td>
        <asp:RadioButton ID="rbBackup" runat="server" Checked="True" GroupName="action" Text="备份" />
        <asp:RadioButton ID="rbRestore" runat="server" GroupName="action" Text="还原" /></td></tr>
        <tr><td>
        操作</td><td>
             <asp:Button ID="btnOK" runat="server" OnClick="btnOK_Click" Text="执行" /></td></tr>
    </table>
    </div>
    </form>
</body>
</html>

后台代码:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

/// <summary>
/// 功能说明:本例中演示在asp.net中如何备份和恢复数据库
/// 备份数据库主要使用数据库的备份语句。数据库备份文件放在
/// App_Data文件夹下。
/// 作者:周公
/// 日期:2008-08-19
/// 首发地址:http://blog.csdn.net/zhoufoxcn/archive/2008/08/19/2796077.aspx
/// </summary>
public partial class DatabaseAction : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            //在DropDownList中绑定所有数据库
            SqlConnection connection = new SqlConnection("Data Source=ZHOUFOXCN;User ID=sa;Password=sa");
            SqlCommand command = new SqlCommand("sp_helpdb", connection);
            command.CommandType = CommandType.StoredProcedure;
            connection.Open();
            SqlDataReader reader = command.ExecuteReader();
            ddlDatabaseList.DataSource = reader;
            ddlDatabaseList.DataTextField = "Name";
            ddlDatabaseList.DataBind();
            reader.Close();
            connection.Close();
        }
    }
    protected void btnOK_Click(object sender, EventArgs e)
    {
        string dbFileName = txtDbFileName.Text.Trim();
        SqlConnection connection = new SqlConnection("Data Source=ZHOUFOXCN;User ID=sa;Password=sa");
        string dbName = ddlDatabaseList.SelectedValue;
        if (!dbFileName.EndsWith(".bak"))
        {
            dbFileName += ".bak";
        }
        if (rbBackup.Checked)//备份数据库
        {
            SqlCommand command = new SqlCommand("use master;backup database @name to disk=@path;",connection);
            connection.Open();
            string path=Server.MapPath("~\\App_Data")+"\\"+dbfilename;
            command.Parameters.AddWithValue("@name", dbName);
            command.Parameters.AddWithValue("@path", path);
            command.ExecuteNonQuery();
            connection.Close();
        }
        else//恢复数据库
        {
            SqlCommand command = new SqlCommand("use master;restore database @name from disk=@path;", connection);
            connection.Open();
            string path = Server.MapPath("~\\App_Data") + "\\" + dbFileName;
            command.Parameters.AddWithValue("@name", dbName);
            command.Parameters.AddWithValue("@path", path);
            command.ExecuteNonQuery();
            connection.Close();
        }
    }
}
以上代码在WindowsXP+VisualStudio2005+SQL Server2000下测试通过

该文章转载自网络大本营:http://www.xrss.cn/Dev/DotNet/200811520559.Html

转载于:https://www.cnblogs.com/Jackey_Chen/archive/2008/12/12/1353712.html

Asp.net(C#)中备份还原SQL Server数据库实现相关推荐

  1. 在asp.net中备份还原SQL Server数据库

    在web中,安全性主要体现在两个方面:一个是程序安全性,即防止网页在插入恶意代码:另一个是数据库安全性,这个我们可以经常备份数据库来实现. 在文中,我将演示如果在网页中备份和恢复数据库.        ...

  2. ASP.NET备份与还原SQL Server数据库

    ASP.NET备份与还原SQL Server数据库 1.备份 SqlConnection connection = new SqlConnection(ConfigurationManager.App ...

  3. 使用PowerShell和Windows任务计划程序备份Linux SQL Server数据库

    This article is an in-depth guide on how PowerShell can be used to maintain and manage SQL backup on ...

  4. 易语言 存储过程 mysql_在易语言中调用MS SQL SERVER数据库存储过程(Transact-SQL)方法总结...

    作者:liigo 日期:2010/8/25 Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接 ...

  5. python怎么导入sql数据库,##使用python将excel表中数据导入sql server数据库

    如何用python将excel数据导入到postgresql数据库中 把excel表格另存为csv文件 python将exce文件含有多个sheet同时l导入sqlserver数据库 需要使用xlrd ...

  6. SQL SERVER 2000 数据库备份和SQL Server数据库备份有两种方式,

    SQL SERVER 2000 数据库备份与还原时间:2006-08-30 10:23:23  来源:CSDN  作者:佚名备份数据库,例如: BACKUP DATABASE Northwind    ...

  7. 还原Sql Server数据库BAK备份文件的三种方式及常见错误

    第一种方法,使用Sql Server Management Studio还原 这是演示的是Sql Server 2008R2版本,不同版本可能有细微差别 右键点击数据库→还原数据库 在还原的源中选择源 ...

  8. 还原SQL Server数据库

    开发工具与关键技术:SQL Server 撰写时间:2019年5月27日 还原类型:文件 点击数据库右键选择还原数据库 单选框选择到设备,单击按钮 添加 找到文件的路径,若没有显示,就选择右下角的所有 ...

  9. 还原sql server数据库时,无法获得对数据库的独占访问权

    declare @dbname   varchar(20) set @dbname='56fc' declare   @sql   nvarchar(500) declare   @spid   in ...

最新文章

  1. python any()和all()用法
  2. 华为诺亚方舟开源预训练模型“哪吒”,4项任务均达到SOTA
  3. “Matlab R2016a中运行‘mex -setup’,错误使用 mex 未找到支持的编译器或 SDK”的解决办法
  4. 计算机四级分数怎么查,计算机三四级成绩查询正确打开方式
  5. 2021-10-11 寻找二叉树结点的前驱或后继结点(用到parent指针)
  6. 23名“无名氏”流浪者成长沙县新市民
  7. SpringBoot_日志-SpringBoot默认配
  8. 时间管理专题_软件篇03
  9. 多迪技术总监告诉你:学习Python语言有哪些就业方向?
  10. java中queue的使用
  11. MindManager思维导图 PRDBRD写作方法与技巧 产品规划模板下载
  12. python脚本打包成exe+配置文件
  13. C-ECAP认证规则说明
  14. 劣币驱逐良币,人吃人的中国职场环境还能走多远
  15. ca盘显示无证书_CA根证书无法识别
  16. 2017-2018年度刷题记录
  17. 计算表面静电势_APBS工具
  18. Android 拖拽球吸附动画,android可拖动,展示菜单,能自动吸边和半隐藏的悬浮球...
  19. cad坐标归零lisp_在CAD中用LISP实现原位放大数值
  20. 数据中心容灾备份是什么?

热门文章

  1. 7系统启动到一半停止_扛不住了!可口可乐巨震:500个品牌砍一半,裁员4000人.........
  2. ivx中字体显示_html-中文字体在CSS中的显示(Unicode编码)(转载)
  3. 为什么神经网络用python而不用c语言_python是用C实现的,Java是用C++实现的,那为什么不直接用C或C++呢?...
  4. 平面设计python教程_什么是平面设计? - Python学习教程的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. dismiss android,[转]Android对话框中dismiss和cancel、hide的区别
  6. mysql 改表面_CSS表面(outline)是什么【html5教程】,CSS
  7. gif提取 python_编写Python爬虫抓取暴走漫画上gif图片的实例分享
  8. python常用的绘图库_Python3绘图库Matplotlib(01)
  9. charles的一些使用
  10. BZOJ.1013.[JSOI2008]球形空间产生器(高斯消元)