[英]The DataAdapter doesn't open the connection itself with Fill Method
我正在使用 next sub 通過 dataadapter 使用數據表來填充組合框:
Public Sub Me_Sub_CboFill(ByVal Cbo As ComboBox, ByVal SqlStr As String, ByVal Dm As String, ByVal Vm As String)
Cbo.DataSource = Nothing
xAdapter = New MySqlDataAdapter(SqlStr, Conn)
Dim Dt As New DataTable
xAdapter.Fill(Dt)
If Dt.Rows.Count = 0 Then Conn.Close()
Cbo.DataSource = Dt
Cbo.DisplayMember = Dm
Cbo.ValueMember = Vm
End Sub
但我面臨下一個味精:
無法連接到任何指定的 MySQL 主機,但是當我手動打開連接時,它可以工作!!
我知道 dataadapter with (Fill) 打開和關閉連接本身,但我不知道為什么我的代碼會發生這種情況。
順便說一句,我嘗試了很多方法來測試,但結果相同,例如下一個代碼:
dim dt as new datatable
Dim xx As New MySqlDataAdapter(SqlNat, Conn)
MsgBox(Conn.State)
xx.Fill(Dt)
謝謝
首先,if 語句應該不存在,如果您仍然想使用它,那么用“end if”關閉它,否則您的代碼將無法工作。 其次,如果這是一個組合框,為什么要聲明 cbo.datasource = 什么都沒有??? 您要刪除內容嗎? 使用 cbo.clear() 代替,然后您可以將數據表用作數據源。 另外 cbo.displaymember = "Dm" 你需要那些報價。
如果您將連接保持在使用它的方法的本地,您可以控制它何時關閉並使用 Using...End Using 塊進行處理。 您的連接可能已由類中的另一個方法處理。
Public Sub Me_Sub_CboFill(ByVal Cbo As ComboBox, ByVal SqlStr As String, ByVal Dm As String, ByVal Vm As String)
Cbo.DataSource = Nothing
Dim Dt As New DataTable
Using Conn As New MySqlConnection("Your conntection string"),
xAdapter As New MySqlDataAdapter(SqlStr, Conn)
xAdapter.Fill(Dt)
End Using
Cbo.DisplayMember = Dm
Cbo.ValueMember = Vm
Cbo.DataSource = Dt
End Sub
我發現我的代碼有問題,我將連接字符串放在用於檢查連接的函數中,為此我需要至少調用一次該函數以使一切正常工作。
非常感謝大家提供的所有信息,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.