0
我正在運行以下SQL查詢以從數據表中填充組合框。如果SQL不返回任何內容,則將預定義行返回到組合框中
如果查詢返回什麼話,我想retuen的3行
我試着插入Refresh
行後以下,也是da.fill(dt)
但之後它只是返回空白預先定義的列表字段
If da.fill(dt) = nothing then
dt.rows.add("list1")
dt.rows.add("list2")
dt.rows.add("list3")
end if
上GotFocus事件SQL代碼
Private Sub Op1_GotFocus(sender As Object, e As EventArgs) Handles Op1.GotFocus
Dim search As String = txtUnitCode.Text
Dim da As New OleDb.OleDbDataAdapter("", "")
Dim dt As New DataTable
Dim conn As String
conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Main.aClients & ""
da.SelectCommand.Connection.ConnectionString = conn
da.SelectCommand.CommandText = "SELECT Name FROM Operations WHERE (UnitCode = " & search & ") AND (OpIsDead = False)"
da.Fill(dt)
Op1.DataSource = dt
Op1.DisplayMember = "Name"
Op1.Refresh()
End Sub
輝煌,謝謝,似乎如果不SQL從它的複製結果的查詢返回一個值但工作的最佳解決方案。我目前在'da.fill(dt)'行之前添加代碼,但我也嘗試過之後,以及 – elmonko
嗨,Ist可能你可以向我解釋這一行'da.SelectCommand.Parameters.AddWithValue(「@ p1 「,搜索)'我不確定'@ p1'位是從哪裏來的 – elmonko
這是參數的名稱。在OleDb中,參數通過它們在命令文本中出現的順序(?佔位符)進行識別。但是當你爲任何DbCommand.Parameters集合添加一個參數時,你應該提供一個名稱(集合的關鍵),所以我寫了'@ p1',但是我可以寫任何東西,但是要尊重佔位符的順序 – Steve