日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
SQLServerSMO備份數(shù)據(jù)庫(kù)進(jìn)度條不顯示的原因

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

創(chuàng)新互聯(lián)公司是專(zhuān)業(yè)的海安網(wǎng)站建設(shè)公司,海安接單;提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行海安網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

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

代碼如下:
 

 

 
 
 
  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. ///  
  12.  

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

 
 
 
  1. ///  
  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í)行,但進(jìn)度條不顯示。
 

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

又試了另外一段代碼
 

 

 
 
 
  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é)果還是不顯示。

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

 

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

而Sql server 2008 r2大約在3M時(shí)顯示進(jìn)度條??赡芨鷻C(jī)器也有關(guān)系。

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

【編輯推薦】

  1. SQL Server數(shù)據(jù)庫(kù)中可用格式字符串干什么?
  2. SQL Server 連接字符串的實(shí)現(xiàn)步驟
  3. SQL Server 連接字符串的一些聲明
  4. SQL Server 字符串在實(shí)際操作中的注意事項(xiàng)
  5. MS SQL Server 連接字符串的實(shí)際操作簡(jiǎn)介

網(wǎng)站標(biāo)題:SQLServerSMO備份數(shù)據(jù)庫(kù)進(jìn)度條不顯示的原因
文章源于:http://www.5511xx.com/article/cdegopp.html