此文章主要向大家讲述的是在那种情况下会出现SQL Server数据库中 *** O备份数据库进度条不显示,同时存在一个十分奇怪的问题,用 *** O备份SQL Server数据库时不显示进度条,也就是进度条事件PercentComplete不触发。
今天试了一下,果然有点奇怪。
一个奇怪的问题,用 *** O备份SQL Server数据库时不显示进度条,也就是进度条事件PercentComplete不触发。
今天试了一下,果然有点奇怪。
代码如下:
using microsoft.SqlServer.Management.Smo; using Microsoft.SqlServer.Management.Common; private void btnBackup_Click(object sender, EventArgs e) { btnBackup.Enabled = false; Thread tr = new Thread(new Threadstart(doBackup)); tr.Priority = ThreadPriority.AboveNormal; tr.Start(); //Thread.Sleep(3000); } /// <summary> /// 备份数据库 /// </summary> public void doBackup() { pbDemo.Value = 0; pbDemo.Maximum = 100; pbDemo.Style = ProgressBarStyle.Blocks; //pbDemo.Step = 10; Server srv = new Server(@"(local)"); Backup backup = new Backup(); backup.Action = BackupActionType.Database; backup.Database = "btnet"; backup.Incremental = false; backup.Devices.Add(new BackupDeviceItem(@"C:agronet09.bak", DeviceType.File)); backup.Initialize = true; backup.PercentCompleteNotification = 10; backup.PercentComplete += new PercentCompleteEventHandler(backup_PercentComplete); //backup.Checksum = true; backup.SqlBackup(srv); } public void backup_PercentComplete(object sender, Microsoft.SqlServer.Management.Smo.PercentCompleteEventArgs e) { this.Invoke(new displayProgress_delegate(displayProgress), e.Percent); //application.DoEvents(); } public delegate void displayProgress_delegate(int progress); public void displayProgress(int progress) { this.lbProgress.Text = "已完成[" + progress.ToString() + " %]"; pbDemo.Value = progress; btnBackup.Enabled = (progress == 100); }
症状如下:结果正确执行,但进度条不显示。
刚开始以为是线程问题,后来发现不是这个原因。
又试了另外一段代码
using Microsoft.SqlServer.Management.Smo; using Microsoft.SqlServer.Management.Common; using System.Diagnostics; static void MAIn(string[] args) { BackupDatabase("ap4\agronet09", "agronet2008", "c:\Northind_3.bak"); ConSOLe.WriteLine(Environment.NewLine + "Press any key to continue."); Console.ReadKey(); } public static void BackupDatabase(string serverName, string databaseName, string fileName) { Console.WriteLine("*** Backing up ***"); Server server = new Server(serverName); Backup backup = new Backup(); backup.Action = BackupActionType.Database; backup.Database = databaseName; backup.Incremental = false; backup.Initialize = true; backup.LogTruncation = BackupTruncateLogType.Truncate; BackupDeviceItem backupItemDevice = new BackupDeviceItem(fileName, DeviceType.File); backup.Devices.Add(backupItemDevice); backup.PercentCompleteNotification = 10; backup.PercentComplete += backup_PercentComplete; backup.Complete +=backup_Complete; backup.SqlBackup(server); } protected static void backup_PercentComplete(object sender, PercentCompleteEventArgs e) { Console.WriteLine(e.Percent + "% processed."); //Application.(); System.Threading.Thread.Sleep(1000); } protected static void backup_Complete(object sender, ServerMessageEventArgs e) { Console.WriteLine(Environment.NewLine + e.ToString()); }
结果还是不显示。
后来突然想到会不会是文件太小,试了一个200M的数据文件,果然成功显示:
后来经反复实验,发现SQL server 2000约在数据文件加日志文件大于6M左右时显示进度条。
而Sql server 2008 r2大约在3M时显示进度条。可能跟机器也有关系。
以上的相关内容就是对SQL Server数据库中 *** O备份数据库进度条的介绍,望你能有所收获。
扫描二维码推送至手机访问。
版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。
Intel会在2015年推出Broadwell、Skylake两代14nm处理器,前者可以使用9系芯片组,Skylake升级到了LGA1151插槽,需要搭配新的100系列芯片组,但初期的Skylake-S又不能超倍频,所以今年Q2季度开始会很混杂。Skylake一代会支持DDR4,100系列芯片组升...
出现该问题的原因是由于使用第三方优化软件消除快捷方式的小箭头引起的。 1、在开始搜索框中键入“regedit”,按回车键打开注册表编辑器。 2、依次定位到以下分支:HKEY_CLASSES_ROOTlnkfile。 3、在lnkfile项上鼠标右键单击“新建”——“字符串值”。...
故障分析: 主要原因应该是不存在软盘驱动器或驱动器未安装,找到故障原因后,Windows 7 32位系统只要将软盘驱动器禁用就可以了。 解决措施: 1、右键点击计算机,选择管理,打开计算机管理窗口; 2、在计算机管理中,找到设备管理器,在右边的软盘控制器中右击,选择卸载即可。 以...
一、打开控制面板,选择“网络和共享中心”; 二、在网络和共享中心中选择“设置新的连接或网络”; 三、选择连接到Internet; 四、选择“仍要设置新的连接”; 五、选择“宽带PPPoE ”; 六、输入对应的宽带帐号及密码,点击连接即可;...
最近小编在使用Windows 7的时侯遇到一个问题,就是应用程序和快捷方式不能锁定到任务栏,我当时不知道怎么回事,但是很多现有的方法都不能解决这个问题。现在我把我的解决的方法分享给大家以作参考。 问题分析 经过思考,初步判断出现该问题的原因是由于使用第三方优化软件消除快捷方式的小箭头引起的。...
Ubuntu挂载U盘问题 复制代码代码如下: 老是说special device /dev/sdb1 does not exist,无比郁闷 复制代码代码如下:#fdisk /dev/sda 复制代码代码如下: 是有个 这个咚咚。。。。 复制代码代码如下: 最后: 复制代码代码如下:...