当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 用asp.net程序备份或还原SQLServer

ASP.NET
不同映射模式下的直线输出的效果问题
ASP.NET开发下的MVC设计模式的实现
ASP.NET编写应用程序的十大技巧
ASP.NET中使用AJAX的简单方法
ASP.NET MVC实现自己的视图引擎
认识asp.net会话状态
ASP.NET实现页面传值的几种方法
.NET中容易混淆的几组重要概念
详解.NET中的动态编译技术
如何使用ASP.Net加密Cookie
ASP.NET 2.0跨网页提交的三种方法
ASP.NET 2.0创建母版页引来的麻烦
.Net整合其他平台的一些探讨
ASP.NET编程经验技巧10则
最佳实践 ADO.NET实用经验无保留曝光
在.NET上执行多线程操作要考虑的两大因素
.Net开发 细说Visual Basic.Net
ASP.NET网络编程中经常用到的27个函数集
ASP.NET防止用户多次登录的方法
对ASP.NET MVC项目中的视图做单元测试

ASP.NET 中的 用asp.net程序备份或还原SQLServer


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-23   浏览: 86 ::
收藏到网摘: n/a

主要是利用SQL Server提供的SQL语句来实现备份的。
备份:use master;backup database @name to disk=@path;
恢复:use master;restore database @name from disk=@path;
上面用的是参数化SQL语句,可以在程序执行的时候动态给参数赋值。

.aspx代码:

以下为引用的内容:

<%@ 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>无标题页</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>

.cs代码

以下为引用的内容:

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(); 
        } 
    } 
}