日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
五分鐘知道ADO.NET異步查詢

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

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

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

使用ADO.NET異步查詢,并將查詢結果呈現在指定的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) '添加新行,并顯示處理進度  
  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("編號", "編號")  
  2. DataG.Columns.Add("時間", "時間")  
  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 = "數據檢索中..." 
  12. newselect.getdatabase()  

網站名稱:五分鐘知道ADO.NET異步查詢
標題URL:http://www.dlmjj.cn/article/dhegigh.html