為什麼 WinForms Listbox 中使用 System.Data.DataRowView 而不是 Real Value?
在 WinForms 開發中,遇到 System.Data.DataRowView 而不是列錶框中的實際值可能會令人費解。了解根本問題將使您能夠有效地解決此問題。
在提供的程式碼片段中:
<code class="csharp">MySqlDataAdapter dAdapter = new MySqlDataAdapter(sqlStr, myConn); DataTable dTable = new DataTable(); dAdapter.Fill(dTable); dAdapter.Dispose(); lstNames.DisplayMember = "NameAndScore"; lstNames.DataSource = dTable;</code>
程式碼顯示正確,因為 DataTable 是透過 MySqlDataAdapter 填充然後指派的作為 ListBox 控制項的資料來源。但是,DisplayMember 屬性設定為“NameAndScore”,這是一個列別名。
將資料綁定到列錶框時,DisplayMember 屬性指定提供清單中顯示的文字的列。透過將其設定為別名“NameAndScore”,您可以指示列錶框顯示字串 System.Data.DataRowView 而不是實際數據,因為底層資料結構是表格的 DataRowView 表示形式。
解決方案:
要修正此問題並顯示資料庫中的實際值:
<code class="csharp">lstNames.DisplayMember = "Score";</code>
<code class="csharp">DataRowView drv = (DataRowView)lstNames.SelectedItem; String valueOfItem = drv["NameAndScore"].ToString();</code>
此方法可讓您存取與所選項目相關的各個值,使您能夠使用底層根據需要提供資料。
以上是為什麼我的 WinForms 列錶框顯示'System.Data.DataRowView”而不是實際值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!