您的位置:首页 > 编程语言 > ASP

用asp.net程序备份或还原SQLServer

2017-09-18 20:03 357 查看
主要是利用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();  

                    }  

                }  

            } 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: