C#数据库备份恢复这样简单

1、html 部分

view plaincopy to clipboardprint?
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DBBack.aspx.cs" Inherits="FunctionModule_BaseDataModule_DBBack" 
    StylesheetTheme="Default" %> 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<%@ Register Src="~/WebControls/BarTitle.ascx" TagName="BarTitle" TagPrefix="uc" %> 
<%@ Register Src="~/WebControls/GridPage.ascx" TagName="GridPage" TagPrefix="uc1" %> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="Head1" runat="server"> 
    <title>无标题页</title> 
 
    <mce:script language='javascript' src="../../Javascript/BiddingCore.js" mce_src="Javascript/BiddingCore.js" type='text/javascript'></mce:script> 
 
    <mce:script language='javascript' src="../../Javascript/OtherFunction.js" mce_src="Javascript/OtherFunction.js" type='text/javascript'></mce:script> 
 
    <mce:script language='javascript' src="../../Javascript/DatePicker/WdatePicker.js" mce_src="Javascript/DatePicker/WdatePicker.js" type='text/javascript'></mce:script> 
 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
        <ContentTemplate> 
            <%--按钮显示--%> 
            <asp:Panel ID="PanelButton" runat="server" Width="100%"> 
                <uc:BarTitle ID="BarTitleInfo" runat="server" /> 
                <table id="tbButton" runat="server" cellpadding="0" cellspacing="0" style="width: 100%"> 
                    <tr> 
                        <td class="BarHeadSquare"> 
                        </td> 
                        <td class='buttonArea'> 
                            <asp:Button ID='btnSave' runat='server' Text='保存数据库(S)' CommandName='edit_save' SkinID='saveButton' 
                                AccessKey="S" ToolTip="Alt + S" OnClick="btnSave_Click" /> 
                            <asp:Button ID='btnReturn' runat='server' Text='返回(B)' SkinID='cancelButton' AccessKey="B" 
                                ToolTip="Alt + B" OnClick="btnReturn_Click" /> 
                        </td> 
                        <td class='buttonArea'> 
                            <asp:Label ID='lblmessage' runat='server' ForeColor='red' Text=''></asp:Label> 
                            <asp:ValidationSummary ID='vldSummary_Insert' runat='server' DisplayMode='SingleParagraph' 
                                HeaderText='系统讯息:' /> 
                        </td> 
                    </tr> 
                </table> 
            </asp:Panel> 
            <%--查询条件--%> 
            <asp:Panel ID="PanelSearchCondition" runat="server" Width="100%"> 
                <fieldset style="vertical-align: top" mce_style="vertical-align: top"> 
                    <legend> 
                        <asp:Label ID="Label11" runat="server" Text="备份"></asp:Label></legend> 
                    <table id="table2" class="tablestyle"> 
                        <tr> 
                            <td class="td_lable_style"> 
                                <asp:Label ID="Label1" runat="server" SkinID="LblCaptionskin" Text="数据库名:"></asp:Label> 
                            </td> 
                            <td class="td_text_style"> 
                                <asp:DropDownList ID="ddlDataName" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlDataName_SelectedIndexChanged" 
                                    Height="16px" Width="203px"> 
                                </asp:DropDownList> 
                            </td> 
                        </tr> 
                        <tr> 
                            <td class="td_lable_style"> 
                                <asp:Label ID="Label3" runat="server" SkinID="LblCaptionskin" Text="备份路径:"></asp:Label> 
                            </td> 
                            <td class="td_text_style"> 
                                <asp:TextBox ID="txtPath" runat="server" Width="358px"></asp:TextBox> 
                            </td> 
                        </tr> 
                        <tr> 
                            <td class="td_lable_style"> 
                            </td> 
                            <td class="td_text_style"> 
                                <asp:Label ID="Label6" runat="server" Text="输入格式如:E:/InOutManage2009126(E盘,文件以InOutManage2009126名保存)"></asp:Label> 
                            </td> 
                        </tr> 
                        <tr> 
                            <td class="td_lable_style"> 
                                <asp:Label ID="Label4" runat="server" SkinID="LblCaptionskin" Text="数据库大小:"></asp:Label> 
                            </td> 
                            <td class="td_text_style"> 
                                <asp:Label ID="labDataSize" runat="server" Text="Label"></asp:Label> 
                            </td> 
                        </tr> 
                    </table> 
                    <%-- 数据源--%> 
                </fieldset> 
            </asp:Panel> 
        </ContentTemplate> 
    </asp:UpdatePanel> 
    </form> 
</body> 
</html> 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DBBack.aspx.cs" Inherits="FunctionModule_BaseDataModule_DBBack"
    StylesheetTheme="Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Register Src="~/WebControls/BarTitle.ascx" TagName="BarTitle" TagPrefix="uc" %>
<%@ Register Src="~/WebControls/GridPage.ascx" TagName="GridPage" TagPrefix="uc1" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>无标题页</title>

    <mce:script language='javascript' src="../../Javascript/BiddingCore.js" mce_src="Javascript/BiddingCore.js" type='text/javascript'></mce:script>

    <mce:script language='javascript' src="../../Javascript/OtherFunction.js" mce_src="Javascript/OtherFunction.js" type='text/javascript'></mce:script>

    <mce:script language='javascript' src="../../Javascript/DatePicker/WdatePicker.js" mce_src="Javascript/DatePicker/WdatePicker.js" type='text/javascript'></mce:script>

</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <%--按钮显示--%>
            <asp:Panel ID="PanelButton" runat="server" Width="100%">
                <uc:BarTitle ID="BarTitleInfo" runat="server" />
                <table id="tbButton" runat="server" cellpadding="0" cellspacing="0" style="width: 100%">
                    <tr>
                        <td class="BarHeadSquare">
                        </td>
                        <td class='buttonArea'>
                            <asp:Button ID='btnSave' runat='server' Text='保存数据库(S)' CommandName='edit_save' SkinID='saveButton'
                                AccessKey="S" ToolTip="Alt + S" OnClick="btnSave_Click" />
                            <asp:Button ID='btnReturn' runat='server' Text='返回(B)' SkinID='cancelButton' AccessKey="B"
                                ToolTip="Alt + B" OnClick="btnReturn_Click" />
                        </td>
                        <td class='buttonArea'>
                            <asp:Label ID='lblmessage' runat='server' ForeColor='red' Text=''></asp:Label>
                            <asp:ValidationSummary ID='vldSummary_Insert' runat='server' DisplayMode='SingleParagraph'
                                HeaderText='系统讯息:' />
                        </td>
                    </tr>
                </table>
            </asp:Panel>
            <%--查询条件--%>
            <asp:Panel ID="PanelSearchCondition" runat="server" Width="100%">
                <fieldset style="vertical-align: top" mce_style="vertical-align: top">
                    <legend>
                        <asp:Label ID="Label11" runat="server" Text="备份"></asp:Label></legend>
                    <table id="table2" class="tablestyle">
                        <tr>
                            <td class="td_lable_style">
                                <asp:Label ID="Label1" runat="server" SkinID="LblCaptionskin" Text="数据库名:"></asp:Label>
                            </td>
                            <td class="td_text_style">
                                <asp:DropDownList ID="ddlDataName" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlDataName_SelectedIndexChanged"
                                    Height="16px" Width="203px">
                                </asp:DropDownList>
                            </td>
                        </tr>
                        <tr>
                            <td class="td_lable_style">
                                <asp:Label ID="Label3" runat="server" SkinID="LblCaptionskin" Text="备份路径:"></asp:Label>
                            </td>
                            <td class="td_text_style">
                                <asp:TextBox ID="txtPath" runat="server" Width="358px"></asp:TextBox>
                            </td>
                        </tr>
                        <tr>
                            <td class="td_lable_style">
                            </td>
                            <td class="td_text_style">
                                <asp:Label ID="Label6" runat="server" Text="输入格式如:E:/InOutManage2009126(E盘,文件以InOutManage2009126名保存)"></asp:Label>
                            </td>
                        </tr>
                        <tr>
                            <td class="td_lable_style">
                                <asp:Label ID="Label4" runat="server" SkinID="LblCaptionskin" Text="数据库大小:"></asp:Label>
                            </td>
                            <td class="td_text_style">
                                <asp:Label ID="labDataSize" runat="server" Text="Label"></asp:Label>
                            </td>
                        </tr>
                    </table>
                    <%-- 数据源--%>
                </fieldset>
            </asp:Panel>
        </ContentTemplate>
    </asp:UpdatePanel>
    </form>
</body>
</html>
 

2、CS部分

view plaincopy to clipboardprint?
using System;  
using System.Collections;   
using System.Configuration;   
using System.Data;   
using System.Linq;   
using System.Web;   
using System.Web.Security;   
using System.Web.UI;   
using System.Web.UI.HtmlControls;   
using System.Web.UI.WebControls;   
using System.Web.UI.WebControls.WebParts;  
using System.Xml.Linq;   
using System.Data.SqlClient;  
using System.IO;   
 
 
public partial class FunctionModule_BaseDataModule_DBBack : System.Web.UI.Page  
{  
    string ConnString = "Data Source=.;User ID=sa;Password=dyl*102900;Initial Catalog=";   
 
    protected void Page_Load(object sender, EventArgs e)  
    {  
        if (!IsPostBack)   
        {   
            //创建数据库   
            SqlConnection con = createCon("InOutManage");   
            con.Open();   
            //打开数据库连接   
            string sql = "Exec sp_helpdb";  
            SqlDataAdapter sdr = new SqlDataAdapter(sql, con);   
            DataSet ds = new DataSet();   
            sdr.Fill(ds);   
            //填充DataSet数据集   
            ddlDataName.DataSource = ds.Tables[0].DefaultView;   
            ddlDataName.DataTextField = "name";   
            //设置下拉列表框显示的文本   
            ddlDataName.DataBind();   
            try   
            {   
                ddlDataName.SelectedValue = "InOutManage";   
                ddlDataName.Enabled = false;   
            }   
            catch { }   
            ddlDataName_SelectedIndexChanged(sender, e);   
        }   
    }   
      
    protected SqlConnection createCon(string dataName)   
    {   
        string str = ConnString + dataName;   
        SqlConnection con = new SqlConnection(str);   
        return con;   
    }  
 
    protected void btnSave_Click(object sender, EventArgs e)  
    {  
        SqlConnection con = createCon(ddlDataName.SelectedValue);  
        string sql = "backup database " + ddlDataName.SelectedValue + " to disk='" + txtPath.Text + ".bak'";  
        con.Open();  
        if (!File.Exists(txtPath.Text + ".bak"))  
        {  
            SqlCommand com = new SqlCommand(sql, con);  
            com.ExecuteNonQuery();      //执行sql语句  
            lblmessage.Text = "系统信息:备份成功!";  
        }  
        else 
        {  
            lblmessage.Text = "系统信息:文件已存在!";  
        }  
    }  
 
              
   protected string getSize(string dataName)   
   {   
       SqlConnection con = createCon("InOutManage");   
       con.Open();   
       //sql语句获取指定数据库的信息   
       string str = "exec sp_helpdb " + dataName;   
       SqlCommand com = new SqlCommand(str, con);   
       SqlDataReader sdr = com.ExecuteReader();   
       sdr.Read();   
       //读取一条记录   
       //获取该数据库的大小   
       string size = sdr["db_size"].ToString();   
       sdr.Close();   
       con.Close();   
       return size;   
   }   
      
    //通过Label控件显示当前数据库的大小   
    protected void ddlDataName_SelectedIndexChanged(object sender, EventArgs e)   
    {   
        labDataSize.Visible = true;   
        //显示当前数据库的大小   
        labDataSize.Text = getSize(ddlDataName.SelectedValue);  
        txtPath.Text = "E:/" + ddlDataName.SelectedValue + DateTime.Today.Year.ToString() + DateTime.Today.Month.ToString()+DateTime.Today.Day.ToString();  
    }  
 
 
    protected void btnReturn_Click(object sender, EventArgs e)  
    {  
        Response.Redirect("~/desktop.aspx");  
    }  

 

还原代码

protected void Button2_Click(object sender, EventArgs e)
    {
        string path = @"c:/Test.bak";
        string restore="restore database Test from disk='"+path+"';";
        SqlConnection con=new SqlConnection("server=.;uid=sa;pwd=;");
        SqlCommand cmd=new SqlCommand(restore,con);
        try
        {
            con.Open();
            cmd.ExecuteNonQuery();
            this.Label1.Text = "恢复成功";

        }
        catch
        {
            this.Label1.Text = "恢复失败";
        }
        finally
        {
            con.Close();
        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值