今天做了一个用.net 写的Sql Server的备份程序。点击“备份”按钮后,对指定的数据库进行备份操作。
程序如下:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Windows.Forms;
namespace ZZTest.Test
{
/// <summary>
/// TestBak 的摘要说明。
/// </summary>
public class TestBak : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button btBak;
protected System.Web.UI.WebControls.Button btRecover;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 – 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btBak.Click += new System.EventHandler(this.btBak_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Step(string message,int percent)
{
ProgressBar PBar = new ProgressBar();
PBar.Visible = true;
PBar.Value=percent;
}
private void btBak_Click(object sender, System.EventArgs e)
{
SQLDMO.Backup backup = new SQLDMO.BackupClass();
SQLDMO.SQLServer server = new SQLDMO.SQLServerClass();
SQLDMO.BackupSink_PercentCompleteEventHandler progress = new SQLDMO.BackupSink_PercentCompleteEventHandler(Step);
backup.PercentComplete += progress;
try
{
server.LoginSecure = false;
server.Connect(“.”, “sa”, “”);//三个参数分别为数据库服务器,登录名,密码
backup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
backup.Database = “gentledsb”; //要备份的数据库名称
backup.Files = @”D:/DataBak/gentledsb” + System.DateTime.Now.ToShortDateString(); //备份出的数据库的路径(含数据库名称)
backup.BackupSetName = “gentledsb”;
backup.BackupSetDescription = “数据备份中,请稍候……”;
backup.Initialize = true;
backup.SQLBackup(server);
Response.Write(“备份完成!”);
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
server.DisConnect();
}
}
}
}
需要注意的问题:
1.在项目中添加引用:SQLDMO.DLL和System.Window.Form.dll
2.该程序从表面看应该是显示出备份时的进度条,但是我运行之后数据库进行备份是成功的,但是不显示进度条,如果各位有何高见,还请不吝赐教,帮小弟解决一下这个问题。