我希望有人能提供帮助。但是,每当我运行我的代码并尝试查看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;
最佳答案
即使设置了列表框的DisplayMember
和ValueMembers
,我也总是要处理此问题。
您当前的代码正确无误,并且可以正常工作,如果您需要访问dTable
中任何列的当前选定项目值,则可以让他们这样做:
DataRowView drv = (DataRowView)lstNames.SelectedItem;
String valueOfItem = drv["NameAndScore"].ToString();
我想要获取整个
DataRowView
的原因是,如果您有更多的列,您仍然可以访问它们的值并对其进行所需的操作。