用asp.net程序备份或还原SQLServer_[Asp.Net教程]
主要是利用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" %>     
无标题页       .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; 
/// 
 
/// 功能说明:本例中演示在asp.net中如何备份和恢复数据库 
/// 备份数据库主要使用数据库的备份语句。数据库备份文件放在 
/// App_Data文件夹下。 
/// 作者:周公 
/// 日期:2008-08-19 
/// 首发地址:http://blog.csdn.net/zhoufoxcn/archive/2008/08/19/2796077.aspx 
///  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(); 
 } 
 } 
} 
转载:
http://blog.csdn.net/zhoufoxcn