[英]vb.net How do to display DB values on a listbox?
我正在嘗試在列表框中顯示具有兩列值的多行,因此當用戶選擇一個選項時,他們會有一些額外的信息。
它應該是這樣的:
ej. 3 BestBuy
我使用相同的方法將數據輸出到我的 GridViews,但它不會在列表框中顯示任何內容。 將數據從數據庫輸出到列表框的正確方法是什么。
SQL 控制類函數
Public Function ExecQuery(query As String) As DataTable
Dim DBDT = New DataTable
Using DBCon As New SqlConnection(ConStr),
DBCmd As New SqlCommand(query, DBCon)
Params.ForEach(Sub(p) DBCmd.Parameters.Add(p))
Params.Clear()
DBCon.Open()
DBDT.Load(DBCmd.ExecuteReader)
End Using
Return DBDT
End Function
'Add Params
Public Sub AddParam(Name As String, Value As Object)
Dim NewParam As New SqlParameter(Name, Value)
Params.Add(NewParam)
End Sub
我如何嘗試將數據添加到列表框
Protected Sub DivisionListBox_DataBinding(sender As Object, e As EventArgs) Handles DivisionListBox.DataBinding
Try
dt = SQL.ExecQuery("Select STR_GRP_ID, GROUP_DESC
FROM Store_Group_Desc ")
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
DivisionListBox.DataSource = dt
DivisionListBox.DataBind()
End Sub
我要做的是返回STR_GRP_ID
並創建一個連接STR_GRP_ID
和GROUP_DESC
字段的STR_GRP_ID
GROUP_DESC
。
然后,您可以像正在執行的操作一樣將 DataTable 綁定到 ListBox,但指定 ListBox 的 DisplayMember 是您的別名列,而 ValueMember 是 id:
Try
dt = SQL.ExecQuery("Select STR_GRP_ID, CONCAT_WS(' ', STR_GRP_ID, GROUP_DESC GROUP_DESC) AS DisplayText FROM Store_Group_Desc;")
Catch ex As Exception
MessageBox.Show(ex.Message)
Return
End Try
With DivisionListBox
.DataSource = dt
.DisplayMember = "DisplayText"
.ValueMember = "STR_GRP_ID"
End With
我認為DataBinding
事件永遠不會在您的代碼中被觸發。 您可以在事件內設置一個斷點,看看它是否曾經被觸發。
我選擇使用Page.Load
事件來填充列表框。 我將實際填充列表框的用戶界面代碼與數據訪問代碼分開。
我讓服務器完成構建您想要顯示的字符串的工作。 我假設 id 字段是某種類型的數字字段,所以我將它轉換為 varchar。 然后添加了一個空格和描述字段。 這個新的選擇字段稱為 IDDesc。
IDDesc 是我想在列表框中顯示的字段名稱。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not IsPostBack Then
FillListBox()
End If
End Sub
Private Sub FillListBox()
Dim ListBoxData = GetListBoxData()
ListBox1.DataTextField = "IDDesc"
ListBox1.DataSource = ListBoxData
ListBox1.DataBind()
End Sub
Private Function GetListBoxData() As DataTable
Dim DBDT = New DataTable
Dim Query = "Select Cast(STR_GRP_ID As varchar) + ' ' + GROUP_DESC As IDDesc
FROM Store_Group_Desc "
Using DBCon As New SqlConnection(ConStr),
DBCmd As New SqlCommand(Query, DBCon)
DBCon.Open()
DBDT.Load(DBCmd.ExecuteReader)
End Using
Return DBDT
End Function
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.