首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>.NET2.0>实例讲解asp.net备份和恢复sql数据库代码
实例讲解asp.net备份和恢复sql数据库代码
来源: 发布时间:2008-11-03 发布人: 浏览: 人次   字体: [ ]  

在web开发中,安全性是一个非常值得我们关注的问题,目前主要体现在两个方面:一个是程序安全性,即防止网页在插入恶意代码;另一个是数据库安全性,这个我们可以经常备份数据库来实现。
在本文中,我们将演示如何在网页中利用asp.net备份和恢复sql server数据库,其实备份和恢复数据库都是利用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>在asp.net中备份还原SQL Server数据库_IT知道网_itwis.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文件夹下。
/// </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下测试通过


相 关 文 章   发布商链接
·实例讲解在.net2.0中对config文件的...
·如何让GridView控件支持分页的自动编...
·.net如何将ListViewItem转换为ListVi...
·如何在asp.net中获取GridView隐藏列...
·gridview控件嵌套gridview控件的方法...
·asp.net2.0调用CSS无效的主要原因及...
·在GridView控件中使用DataKeyNames属...
·ASP.NET2.0中控件的简单异步回调
·C#2.0纯数学方法递归实现货币数字转...
·ASP.NET 2.0 中的母版页详解
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·实例讲解在.net2.0中对config
·包含32种常见的用户输入验证...
·asp.net不使用服务器控件的情
·如何更改单个aspx页面的编码...
·实例讲解如何设置gridview的...
·asp.NET 2.0中引发CSS失效问...
·GridView通过模板列实现第一...
·VS2005利用TreeView控件和递...
·DataView对象获取数据行相应...
·GridView中固定列的两种方法
·为GridView控件添加分页导航...
·Net2.0中使用母版页及其母版...
·实例解决GridView中弹出对话...
·Gridview控件字段内容过长的...
·图解ASP.NET下AJAX安装(VS20...
热 门 文 章
·asp.net(C#)弹出窗口返回值并...
·VS2005利用Excel组件操作Exce...
·AJAX实现无刷新适时显示gridV...
·gridview表头固定并实现打印...
·Js获取radiobuttonlist选中值...
·gridview绑定数据显示的各种...
·ASP.NET中“无法加载 DLL 找...
·asp.net文件下载防止乱码出现...
·asp.net2.0回发或回调参数无...
·实现gridview内容打印功能的...
·ASP.NET多个用户控件回车提交...
·Asp.net页面传递参数的几种方...
·图解ASP.NET下AJAX安装(VS20...
·实例解决GridView中弹出对话...
·如何在asp.net中获取GridView...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .