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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
五分鐘知道ADO.NET異步查詢

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

雞東ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

#T#在創(chuàng)建Connection和Command對象后,就必須確定命令是否返回結(jié)果集。如果命令不返回結(jié)果集,就可以通過調(diào)用幾個(gè)Execute方法之一,執(zhí)行命令。另一方面,如果命令返回結(jié)果集,就必須確定是否要保留結(jié)果集,以備將來在不維持與數(shù)據(jù)庫的連接的情況下使用。如果要保留結(jié)果集,就必須創(chuàng)建一個(gè)DataAdapter對象,用它填充DataSet或DataTable對象。這些對象可以在斷開連接的模式下維護(hù)其中的信息。但是,如果不想保留結(jié)果集,只是要以快速方式執(zhí)行命令,就可以使用Command對象創(chuàng)建DataReader對象。DataReader對象需要與數(shù)據(jù)庫的實(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()  

網(wǎng)站標(biāo)題:五分鐘知道ADO.NET異步查詢
當(dāng)前鏈接:http://www.5511xx.com/article/dhegigh.html