【发布时间】:2011-08-30 16:08:26
【问题描述】:
我有这段代码可以构建IList<string>:
IList<string> databases;
using (MySqlConnection _conn = Session.Connection)
using (MySqlCommand _cmd = _conn.CreateCommand("SHOW databases"))
{
_cmd.Connection.Open ( );
var _dr = _cmd.ExecuteReader();
databases = new List<string> ( _dr.SelectFromReader ( reader =>
reader[ 0 ] is DBNull ? null : reader[ 0 ].ToString ( ) ) );
_cmd.Connection.Close ( );
}
dgrid_Main.DataSource = databases;
遵循扩展方法SelectFromReader here的工作原理。
问题是,dgrid_Main 怎么会显示每个数据库的长度...
...而不是名称? 我运行了这个测试:
foreach (string db in databases)
{
// winform treeview control
trv_ServerObjects.Nodes.Add ( db );
}
...我得到以下结果:
【问题讨论】:
-
那是因为它试图显示投影值的所有公共属性。 strong 的唯一公共属性是 Length
-
@Henk - 确实; iSpelling 的危险
-
很高兴没有编辑窗口。
标签: c# datagridview datasource ilist