备份是成功了,但是想显示备份进度,如何做到,谢谢先
解决方案 »
- 多线程问题【100分】
- Dataset添加DataTable
- datagridview 标题行如何分行
- 请问一个label的值如何随进度改变?
- 100分求购一个没有依靠控件的分页代码,输出的数据也没有依靠控件的!
- 谁能帮我解释下什么是类型(type)啊 谢谢
- 怎么用键盘的快捷健实现界面上按钮的功能代码?谢谢各位高手指导!!
- 怎样在Contextmenu中知道选择的第几个menuitem??????
- win7下 C#注入DLL为什么无效?
- ppc 2002 上的录音(vs.net 2003,c#,smartdevice application)急,希望斑竹能置顶!分数不是问题,预置500分,不够再加到1K
- 怎么保持‘---Pls Select---’在dropdownlist中置顶?
- listview的显示数据的问题
这个也许 微软提供了接口. 要不就只有通过 反编译 sql2005的ide 来查找了.
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
Backup bkp = new Backup();
bkp.PercentComplete += new PercentCompleteEventHandler(ProgressEventHandler); static void ProgressEventHandler(object sender, PercentCompleteEventArgs e)
{
//WriteToLogAndConsole( + "% Complete");
}
大家帮忙看看这样行不行,我不知道哪写错,进度条始终没反应
2、加上断点看看是否切入了该事件这个东西估计大多数人没有用过的,你也只能一点点地实验了。
this.progressBar.Visible = true;
this.Cursor = Cursors.WaitCursor; //◆数据备份:
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
oBackup.Action = 0 ;
oBackup.Initialize = true ;
SQLDMO.BackupSink_PercentCompleteEventHandler pceh = new SQLDMO.BackupSink_PercentCompleteEventHandler(Step);
oBackup.PercentComplete += pceh; try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect(temp[0], temp[1], temp[2]);
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
oBackup.Database = "StaffDB";//数据库名
oBackup.Files = txtPath.Text;//文件路径
oBackup.BackupSetName = "StaffDB" ;//备份名称
oBackup.BackupSetDescription = "数据备份";//备份描述
oBackup.Initialize = true;
oBackup.SQLBackup(oSQLServer);//备份数据库
MessageBox.Show("数据库备份成功!","提示",MessageBoxButtons.OK);
}
catch(System.Exception ex)
{
MessageBox.Show("数据备份失败:\n" + ex.ToString(),"错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
finally
{
oSQLServer.DisConnect();
} //------------------------------------------------------------------------------------
this.progressBar.Visible = false;
this.Cursor = Cursors.Default;/// <summary>
/// 显示进度条
/// </summary>
private void Step(string message,int percent)
{
this.progressBar.Value = percent ;
System.Threading.Thread.Sleep(1000);
}
最新的MSDN杂志有介绍,大家看下,顺便结贴,谢谢大家帮助