c# – 为什么我收到“System.Data.DataRowView”而不是我的Listbox中的真实值?

前端之家收集整理的这篇文章主要介绍了c# – 为什么我收到“System.Data.DataRowView”而不是我的Listbox中的真实值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望有人能帮忙.但是每当我运行我的代码,并尝试查看一个高分,所有我收到我的列表框是System.Data.DataRowView.

谁能看到为什么?

码:

MysqLConnection myConn = new MysqLConnection(connStr);

string sqlStr = "SELECT CONCAT(Name,' ',score) as NameAndscore " + 
                "FROM highscore ORDER BY score DESC";

MysqLDataAdapter dAdapter = new MysqLDataAdapter(sqlStr,myConn);
DataTable dTable = new DataTable();
dAdapter.Fill(dTable);
dAdapter.Dispose();
lstNames.DisplayMember = "NameAndscore";
lstNames.DataSource = dTable;

解决方法

我总是要处理这个问题,即使我设置了ListBox的DisplayMember和ValueMembers.
您当前的代码是正确的,应该有效,如果您需要访问dTable的任何列的当前选定项目值,您可以让他们这样做:
DataRowView drv = (DataRowView)lstNames.SelectedItem;
String valueOfItem = drv["NameAndscore"].ToString();

我喜欢获取整个DataRowView的是,如果你有更多的列,你仍然可以访问他们的值,并做任何你需要的.

猜你在找的C#相关文章