成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

五分鐘知道ADO.NET異步查詢

開發(fā) 后端
這里就使用ADO.NET異步查詢,并將查詢結(jié)果呈現(xiàn)在指定的Form的DataGridView中,文章有詳細(xì)的代碼分析,希望對(duì)大家有幫助。

ADO.NET經(jīng)過長(zhǎng)時(shí)間的發(fā)展,很多用戶都很了解ADO.NET了,這里我發(fā)表一下個(gè)人理解,和大家討論討論。ADO.NET數(shù)據(jù)庫(kù)提供程序包含Connection、Command、DataAdapter和DataReader對(duì)象。在一般的ADO.NET編程中,首先要?jiǎng)?chuàng)建Connection對(duì)象,給它提供需要的信息,例如連接字符串。然后創(chuàng)建一個(gè)Command對(duì)象,給它提供要執(zhí)行的SQL命令的細(xì)節(jié)。這個(gè)命令可以是內(nèi)置的SQL文本命令、存儲(chǔ)過程或?qū)Ρ淼闹苯釉L問。如果需要,還可以為這些命令提供參數(shù)。

#T#在創(chuàng)建Connection和Command對(duì)象后,就必須確定命令是否返回結(jié)果集。如果命令不返回結(jié)果集,就可以通過調(diào)用幾個(gè)Execute方法之一,執(zhí)行命令。另一方面,如果命令返回結(jié)果集,就必須確定是否要保留結(jié)果集,以備將來在不維持與數(shù)據(jù)庫(kù)的連接的情況下使用。如果要保留結(jié)果集,就必須創(chuàng)建一個(gè)DataAdapter對(duì)象,用它填充DataSet或DataTable對(duì)象。這些對(duì)象可以在斷開連接的模式下維護(hù)其中的信息。但是,如果不想保留結(jié)果集,只是要以快速方式執(zhí)行命令,就可以使用Command對(duì)象創(chuàng)建DataReader對(duì)象。DataReader對(duì)象需要與數(shù)據(jù)庫(kù)的實(shí)時(shí)連接,它是一個(gè)只向前的只讀光標(biāo)。下面我們來看一個(gè)關(guān)于使用ADO.NET異步查詢的案例。

使用ADO.NET異步查詢,并將查詢結(jié)果呈現(xiàn)在指定的Form的DataGridView中

  1. Public Class Asynchronous  
  2. Private Delegate Sub MainInvoke(ByVal TableItems() As String, ByVal RowCount As Integer) '委托  
  3. Delegate Sub AsyncMethodCaller()  
  4. Public connstr As String  
  5. Public cmdstr As String  
  6. Public frm As Form ' 指定的form  
  7. Public dgv As DataGridView ' 指定的datagridview  
  8. Public statuscontrol As Control ' 顯示狀態(tài)的控件  
  9. Public message As String'狀態(tài)提示文本  
  10.  
  11. Private Sub CallbackHandler()  
  12. Using conn As New SqlConnection(connstr), cmd As New SqlCommand(cmdstr, conn)  
  13. conn.Open()  
  14. Using reader As SqlDataReader = cmd.ExecuteReader  
  15. Dim i As Integer  
  16. Dim items(dgv.Columns.Count - 1) As String  
  17. While reader.Read()  
  18. For j As Int32 = 0 To dgv.Columns.Count - 1  
  19. items(j) = reader(dgv.Columns(j).HeaderText)  
  20. Next  
  21. frm.Invoke(New MainInvoke(AddressOf Addrows), items, i)  
  22. i += 1  
  23. End While  
  24. End Using  
  25. conn.Close()  
  26. End Using  
  27. End Sub  
  28.  
  29. Public Sub getdatabase()  
  30. Dim caller As New AsyncMethodCaller(AddressOf CallbackHandler)  
  31. Dim result As IAsyncResult = caller.BeginInvoke(AddressOf StopRead, caller)  
  32. End Sub  
  33.  
  34. Private Sub Addrows(ByVal TableItems() As String, ByVal row As Integer) '添加新行,并顯示處理進(jìn)度  
  35. dgv.Rows.Add()  
  36. For i As Int32 = 0 To TableItems.Length - 1  
  37. dgv.Rows(row).Cells(i).Value = TableItems(i)  
  38. Next  
  39. If statuscontrol IsNot Nothing Then statuscontrol.Text = message & row  
  40. End Sub  
  41.  
  42. Private Sub StopRead(ByVal ar As IAsyncResult)  
  43. Dim caller As AsyncMethodCaller = CType(ar.AsyncState, AsyncMethodCaller)  
  44. caller.EndInvoke(ar)  
  45. End Sub  
  46. End Class  

ADO.NET異步查詢使用方法:

  1. DataG.Columns.Add("編號(hào)", "編號(hào)")  
  2. DataG.Columns.Add("時(shí)間", "時(shí)間")  
  3. DataG.Columns.Add("用戶名", "用戶名")  
  4.  
  5. Dim newselect As New Asynchronous  
  6. newselect.connstr = "SERVER=x;DATABASE=x;USER=x;PASSWORD=x;Asynchronous Processing=true" 
  7. newselect.cmdstr = "select * from log" 
  8. newselect.frm = Me 
  9. newselect.dgv = DataG 
  10. newselect.statuscontrol = Me 
  11. newselect.message = "數(shù)據(jù)檢索中..." 
  12. newselect.getdatabase()  


 

責(zé)任編輯:田樹 來源: 博客
相關(guān)推薦

2009-11-04 16:13:18

ADO.NET數(shù)據(jù)表

2009-10-29 11:39:52

ADO.NET連接池

2009-11-11 16:08:21

ADO.NET數(shù)據(jù)服務(wù)

2009-11-12 09:16:15

ADO.NET數(shù)據(jù)庫(kù)連

2009-11-03 15:47:10

ADO.NET數(shù)據(jù)異步

2009-11-04 17:18:34

ADO.NET連接池

2009-11-12 16:04:42

ADO.NET對(duì)象查詢

2009-12-29 10:26:43

ADO.NET實(shí)體框架

2009-11-04 09:43:45

ADO.NET Dat

2010-01-04 17:27:15

ADO.NET異步操作

2010-05-06 08:55:23

ADO.NET

2009-12-28 15:11:36

ADO.NET專家

2009-11-05 10:56:31

WCF通訊

2009-11-03 16:37:10

2009-09-14 13:37:25

LINQ ADO.NE

2009-12-21 13:51:54

ADO.NET處理

2011-05-20 11:31:07

ADO.NET

2009-10-21 18:19:36

VB.NET實(shí)現(xiàn)拖放

2009-10-26 15:45:43

VB.NET類構(gòu)造

2009-10-30 13:12:40

VB.NET創(chuàng)建類
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 成人在线精品视频 | 久久伊人精品一区二区三区 | 亚洲欧美中文日韩在线v日本 | 成人黄视频在线观看 | 久久91av| 国产成人精品免费视频 | 久久国产精品91 | 日韩亚洲视频 | 色综久久 | 91精品一区二区三区久久久久 | 成年人黄色免费视频 | 亚洲+变态+欧美+另类+精品 | 亚洲国产一区二区视频 | 天天操夜夜拍 | 99视频免费 | 男人天堂99 | 91短视频网址 | 欧美一区二区三区精品 | 天堂成人av | 免费观看av| 亚洲欧洲精品一区 | wwww.8888久久爱站网 | 欧美亚洲视频在线观看 | 国产婷婷色综合av蜜臀av | 毛片综合 | 欧美国产日韩在线观看 | 国产精品日韩欧美一区二区三区 | 国产精品久久久久久久久久久久久 | 黄色大全免费看 | 久久777 | 一区二区三区 在线 | 国产成人精品一区二区三区视频 | 欧美激情在线精品一区二区三区 | 亚洲播放一区 | 国产高清视频在线观看 | 91av在线影院 | 亚洲精品一区二区三区中文字幕 | 成人精品在线视频 | 欧美日韩国产一区二区三区不卡 | 国产精品日韩欧美一区二区三区 | 久久久久国产一区二区三区 |