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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值