自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server SMO備份數(shù)據(jù)庫進度條不顯示的原因

數(shù)據(jù)庫 SQL Server
以下的文章主要向大家講述的是SQL Server SMO備份數(shù)據(jù)庫進度條不顯示這一奇怪問題,以及對其實際解決原因的描述。

我們今天主要向大家描述的是SQL Server SMO備份數(shù)據(jù)庫進度條不顯示這一問題,假如你在實際操作中遇到相似的情況,但是你卻不知道對其如何正確的解決,那么以下的文章對你而言一定是良師益友。

一個奇怪的問題,用SQL Server  SMO備份數(shù)據(jù)庫時不顯示進度條,也就是進度條事件PercentComplete不觸發(fā)。 今天試了一下,果然有點奇怪。

代碼如下:
 

 

  1. using Microsoft.SqlServer.Management.Smo;  
  2. using Microsoft.SqlServer.Management.Common;  
  3. private void btnBackup_Click(object sender, EventArgs e)  
  4. {  
  5. btnBackup.Enabled = false;  
  6. Thread tr = new Thread(new ThreadStart(doBackup));  
  7. tr.Priority = ThreadPriority.AboveNormal;  
  8. tr.Start();  
  9. //Thread.Sleep(3000);  
  10. }  
  11. /// <summary> 
  12.  

備份數(shù)據(jù)庫

  1. /// </summary> 
  2. public void doBackup()  
  3. {  
  4. pbDemo.Value = 0;  
  5. pbDemo.Maximum = 100;  
  6. pbDemo.Style = ProgressBarStyle.Blocks;  
  7. //pbDemo.Step = 10;  
  8. Server srv = new Server(@"(local)");  
  9. Backup backup = new Backup();  
  10. backup.Action = BackupActionType.Database;  
  11. backup.Database = "btnet";  
  12. backup.Incremental = false;  
  13. backup.Devices.Add(new BackupDeviceItem(@"C:\agronet09.bak", DeviceType.File));  
  14. backup.Initialize = true;  
  15. backup.PercentCompleteNotification = 10;  
  16. backup.PercentComplete += new PercentCompleteEventHandler(backup_PercentComplete);  
  17. //backup.Checksum = true;  
  18. backup.SqlBackup(srv);  
  19. }  
  20. public void backup_PercentComplete(object sender, Microsoft.SqlServer.Management.Smo.PercentCompleteEventArgs e)  
  21. {  
  22. this.Invoke(new displayProgress_delegate(displayProgress), e.Percent);  
  23. //Application.DoEvents();  
  24. }  
  25. public delegate void displayProgress_delegate(int progress);  
  26. public void displayProgress(int progress)  
  27. {  
  28. this.lbProgress.Text = "已完成[" + progress.ToString() + " %]";  
  29. pbDemo.Value = progress;  
  30. btnBackup.Enabled = (progress == 100);  
  31. }  

癥狀如下:結(jié)果正確執(zhí)行,但進度條不顯示。
 

剛開始以為是線程問題,后來發(fā)現(xiàn)不是這個原因。

又試了另外一段代碼
 

 

  1. using Microsoft.SqlServer.Management.Smo;  
  2. using Microsoft.SqlServer.Management.Common;  
  3. using System.Diagnostics;  
  4. static void Main(string[] args)  
  5. {  
  6. BackupDatabase("ap4\\agronet09", "agronet2008", "c:\\Northind_3.bak");  
  7. Console.WriteLine(Environment.NewLine + "Press any key to continue.");  
  8. Console.ReadKey();  
  9. }  
  10. public static void BackupDatabase(string serverName, string databaseName, string fileName)  
  11. {  
  12. Console.WriteLine("*** Backing up ***");  
  13. Server server = new Server(serverName);  
  14. Backup backup = new Backup();  
  15. backup.Action = BackupActionType.Database;  
  16. backup.Database = databaseName;  
  17. backup.Incremental = false;  
  18. backup.Initialize = true;  
  19. backup.LogTruncation = BackupTruncateLogType.Truncate;  
  20. BackupDeviceItem backupItemDevice = new BackupDeviceItem(fileName, DeviceType.File);  
  21. backup.Devices.Add(backupItemDevice);  
  22. backup.PercentCompleteNotification = 10;  
  23. backup.PercentComplete += backup_PercentComplete;  
  24. backup.Complete +=backup_Complete;  
  25. backup.SqlBackup(server);  
  26. }  
  27. protected static void backup_PercentComplete(object sender, PercentCompleteEventArgs e)  
  28. {  
  29. Console.WriteLine(e.Percent + "% processed.");  
  30. //Application.();  
  31. System.Threading.Thread.Sleep(1000);  
  32. }  
  33. protected static void backup_Complete(object sender, ServerMessageEventArgs e)  
  34. {  
  35. Console.WriteLine(Environment.NewLine + e.ToString());  
  36. }  

結(jié)果還是不顯示。

后來突然想到會不會是文件太小,試了一個200M的數(shù)據(jù)文件,果然成功顯示:

 


后來經(jīng)反復實驗,發(fā)現(xiàn)SQL server 2000約在數(shù)據(jù)文件加日志文件大于6M左右時顯示進度條。

而Sql server 2008 r2大約在3M時顯示進度條。可能跟機器也有關(guān)系。

以上的相關(guān)內(nèi)容就是對SQL Server SMO備份數(shù)據(jù)庫進度條不顯示的介紹,望你能有所收獲。

【編輯推薦】

  1. SQL Server數(shù)據(jù)庫中可用格式字符串干什么?
  2. SQL Server 連接字符串的實現(xiàn)步驟
  3. SQL Server 連接字符串的一些聲明
  4. SQL Server 字符串在實際操作中的注意事項
  5. MS SQL Server 連接字符串的實際操作簡介
責任編輯:佚名 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-07-09 09:34:37

SQL Server數(shù)

2010-07-16 10:29:02

SQL Server

2010-11-10 13:54:27

SQL SERVER自

2011-03-24 09:07:11

SQL Server數(shù)備份

2010-07-08 11:05:14

SQL Server數(shù)

2021-05-17 06:57:34

SQLServer數(shù)據(jù)庫

2010-09-13 16:46:10

SQL Server觸

2011-07-18 15:36:38

定時自動備份SQLServer

2009-08-18 09:49:00

C# listview

2015-07-31 11:19:43

數(shù)字進度條源碼

2010-06-07 14:09:12

mysqldump備份

2011-02-22 14:53:41

titlebar標題欄Android

2010-10-12 17:23:40

MySQL命令行

2010-08-27 09:59:51

SQL Server

2010-07-06 15:07:37

SQL Server

2020-03-17 08:29:29

數(shù)據(jù)庫備份技術(shù)

2010-05-26 09:01:43

mysqldump備份

2010-07-15 17:28:50

SQL Server

2011-08-22 16:03:30

linuxVPS備份數(shù)據(jù)庫

2009-08-27 14:01:41

C#進度條
點贊
收藏

51CTO技術(shù)棧公眾號