此文章主要向大家讲述的是在那种情况下会出现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备份数据库进度条的介绍,望你能有所收获。
在Windows 7系统的默认设置中,当Windows 7系统处于休眠状态时,会同时断网的。如此一来,无论你正在使用迅雷还是快车等下载工具,同样可以在休眠状态下继续完成下载,最大限度做到从身边的小事开始支持环保。下面我们就详细介绍操作步骤,帮助Windows 7系统用户实现这一节能目标。 首先需要...
在某些电脑中,机器内部蜂鸣器与系统的声音输出方案是相关联的,这样一来会导致当系统输出声音时,即使电脑没有连接外部音响或耳机,也会通过内置蜂鸣器发出“嘟嘟哔哔”的声音。这个问题主要出现在Windows 7电脑中,假如你的电脑恰好遇到了这样的问题,可参考下面的方法来解决: 1、在桌面“计算机”图标上右...
国外媒体CNET NEWS就这个“上帝模式”和微软Windows部门主管Steven Sinofsky进行邮件交流后得知,这其实只是众多快捷方式中的一个,Sinofsky在邮件里给出了十多个这类快捷方式的关键字符串。 它们的建立方法和之前的“上帝模式”一样,在任意位置新建的一个文件夹,然后改名即可...
假如碰到电脑里的文件夹和文件全都不显示名字了(如下图),是不是电脑中毒了呢 请教下笔者有没好的解决方法!下面是笔者给出的答案,希望能够帮助到大家! 首先打开你用来装图片的文件夹(缩略图下面的文字不显示的文件夹),然后但击工具栏上的“查看”选择“平铺”, 下面就是关键:要按住SHIFT键不...
一些用户的Windows 7系统开机后出现黑屏,代码为 Windows无法启动: WindowsSystem32ConfigSystem”。这个问题该如何修复呢?现在小编就给大家分析一下吧。 其实这个代码的意思是引导文件丢失了,引导文件(NTLDR)一般存放于C盘根目录下,是一个具有隐藏和只读属性...
最近一些Windows 7用户反馈说,自己在截屏的时候出现黑屏,导致自己截的图黑呼呼一片。这个问题该怎么解决?今天小编就为大家提供一个解决的方法。 步骤 1 在windows xp时代,很多用户都曾被视频截图后的“全黑图片”困扰。对此,在解决本地播放时出现的截图变黑问题,一般有两个方法可以用来解...