为什么我的 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学习者快速成长!