程序主要是利用SQL Server提供的SQL语句来实现备份的。
备份:use master;backup database @name to disk=@path;
恢复:use master;restore database @name from disk=@path;
上面用的是参数化SQL语句,可以在程序执行的时候动态给参数赋值。
实例代码如下:
.aspx代码:
.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;
public partial class _Default : System.Web.UI.Page 
...{
protected void Page_Load(object sender, EventArgs e) 
...{
if (!Page.IsPostBack) 
...{
//在DropDownList中绑定所有数据库
SqlConnection connection = new SqlConnection("Data Source=(local);User ID=ASPXCS;Password=ASPXCS");
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=(local);User ID=ASPXCS;Password=ASPXCS");
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();
}
}
}以上代码是完整的实例,大家可直接复制进行测试!也可方便大家直接使用!