小编典典

为什么我在列表框中得到“ System.Data.DataRowView”而不是实际值?

mysql

我希望有人能提供帮助。但是,每当我运行我的代码并尝试查看highscore所有代码时,我都回到列表框中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;

阅读 346

收藏
2020-05-17

共1个答案

小编典典

即使设置了列表框的DisplayMemberValueMembers,我也总是要处理此问题。

您当前的代码正确无误,并且可以正常工作,如果您需要访问任意列的当前选定项目值,则dTable可以让他们这样做:

DataRowView drv = (DataRowView)lstNames.SelectedItem;
String valueOfItem = drv["NameAndScore"].ToString();

我希望获得完整的结果DataRowView是,如果您有更多的列,您仍然可以访问它们的值并对其进行任何操作。

2020-05-17