填補我有以下代碼:組合框的代碼無效
Using conn = New SqlConnection(connStr)
Dim sql = "SELECT [CATEGORIA], [AREA] FROM [CATEGORIAS] WHERE ([AREA] = @AREA)"
Dim sqlCmd = New SqlCommand(sql, conn)
sqlCmd.Parameters.AddWithValue("@AREA", CStr(PublicLogin.Area))
conn.Open()
Dim ds As New DataSet
Dim da As New SqlDataAdapter(sql, conn)
da.Fill(ds, "CATEGORIAS")
With cboCat
.DataSource = ds.Tables("CATEGORIAS")
.DisplayMember = "CATEGORIAS_AREA"
.ValueMember = "CATEGORIAS_AREA"
.SelectedIndex = 0
End With
End Using
應該在理論上填補組合框嗎?它沒有。它不會給我任何錯誤或任何東西;組合框只是空着。我很確定查詢運行良好,它抓取正確的信息,但Combobox不填充。如果我把where查詢出來,它用'System.Data.Row ...'填充CB。
UPDATE:工作代碼,以防有人需要它;
Using conn = New SqlConnection(connStr)
Dim sql = "SELECT [CATEGORIA], [AREA] FROM [CATEGORIAS] WHERE ([AREA] = @AREA)"
Dim sqlCmd = New SqlCommand(sql, conn)
sqlCmd.Parameters.AddWithValue("@AREA", CStr(PublicLogin.Area))
conn.Open()
Dim ds As New DataSet
Dim da As New SqlDataAdapter(sqlCmd)
da.Fill(ds, "CATEGORIAS")
With cboCat
.DataSource = ds.Tables("CATEGORIAS")
.DisplayMember = "CATEGORIA"
.ValueMember = "CATEGORIA"
.SelectedIndex = 0
End With
End Using
+1。在您的答案之前,我沒有注意到'sqlCmd'沒有被使用。現在我很困惑它怎麼不拋出異常... – Neolisk
你說得對。我將查詢的WHERE部分拿出來並顯示數據(感謝Neolisk的回答)。我檢查了參數上的斷點,並且PublicLogin.Area變量正確傳遞了該值。儘管我沒有完全理解你的第一句話,但是參數在查詢(@AREA)中,或者有什麼顯而易見的東西丟失了嗎? (發生在我身上)。 –
我從來不會調用實際的sqlCMD。 Goddangit。我應該在哪裏正確添加它? –