為什麼我的 WinForms 列錶框顯示'System.Data.DataRowView”而不是實際值?

Barbara Streisand
發布: 2024-11-02 03:55:30
原創
785 人瀏覽過

Why Does My WinForms Listbox Display

為什麼 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 表示形式。

解決方案:

要修正此問題並顯示資料庫中的實際值:

  • 將DisplayMember 設定為實際列名:
<code class="csharp">lstNames.DisplayMember = "Score";</code>
登入後複製
  • 使用DataRowView 表示檢索特定值:
<code class="csharp">DataRowView drv = (DataRowView)lstNames.SelectedItem;
String valueOfItem = drv["NameAndScore"].ToString();</code>
登入後複製

此方法可讓您存取與所選項目相關的各個值,使您能夠使用底層根據需要提供資料。

以上是為什麼我的 WinForms 列錶框顯示'System.Data.DataRowView”而不是實際值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!