0
我正在從一個數據庫填充正在填充的數據表的列表框。這是相關的代碼。列表框選擇:DataRowView到類型Sting是無效的
Private Sub frmMainMenu_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Load data we need from the database
Dim commandCraneType As New OleDbCommand("SELECT Name FROM CraneType WHERE Girders = 'Single Girder'", gConnection)
Dim adapterCraneType As New OleDbDataAdapter(commandCraneType)
Dim dTableCraneType As New DataTable()
'Fill datatables and controls
adapterCraneType.Fill(dTableCraneType)
lboCraneType.DataSource = dTableCraneType
lboCraneType.DisplayMember = "Name"
End Sub
Private Sub lboCraneType_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lboCraneType.SelectedIndexChanged
'Set the gCraneType global variable!
gCraneType = lboCraneType.SelectedItem
Debug.Print(gCraneType)
End Sub
該列表框正確填充數據庫的名稱字段中的文本值。但是,當我在列表框中選擇該項目時,調試告訴我gCraneType已被分配System ... DataRowView,並且我收到一個異常,說我不能將該類型轉換爲字符串。我不明白爲什麼名稱在列表框中正確顯示,但選擇是數據類型。
感謝所有幫助您提供:)
dTableCraneType是一個DataTable。 SelectedItem是DataRow而不是DataTable。 – Paparazzi
看看這個http://stackoverflow.com/questions/16006741/windows-forms-listbox-selecteditem-displaying-system-data-datarowview-styles和這個http://stackoverflow.com/questions/11117932/get -selecteditems-from-database-fed-listbox and this http://stackoverflow.com/questions/15428542/why-i-get-system-data-datarowview-instead-of-real-values-in-my-listbox – Chris
我應該如何改變我將gCraneType設置爲lboCraneType中所選文本的操作? – kmaz13