我在数据库中有一些数据并将其选择为dynamic
变量..
dynamic _data;
_data = db.Select("select * from foobar");
最终会出现类似(动态视图)的内容:
0 => customername => "blabla",
companyname => "haha"
1 => customername => "hihi",
companyname => "hoho"
等等。
调试此动态类型还会向我显示数据存在为(结果视图)
0 => key => "customername", value => "blabla",
key => "companyname", value => "haha"
1 => key => "customername", value => "hihi",
key => "companyname", value => "hoho"
我想要实现的是将此内容添加到像
这样的组合框中cmbGroup.DisplayMember = "customername";
cmbGroup.ValueMember = "customername";
cmbGroup.DataSource = _data;
或
cmbGroup.DisplayMember = "key";
cmbGroup.ValueMember = "value";
cmbGroup.DataSource = _data;
但这两种情况都不起作用......它总是让我System.Dynamc.ExpandoObject
作为组合物。
我尝试将数据转换为列表
private List<string> dyn2List()
{
List<string> ls = new List<string> { };
foreach(var d in _data)
{
ls.Add(d.customername);
}
return ls;
}
并添加它,实际上以某种方式工作但当你知道我的意思时,这似乎不是很好的方式。另外,如果我使用列表转换....我必须避免重复,这会带来很多其他错误...(简称:不知道如何)
所以我的问题:无论如何在组合框中使用<dynamic>
作为数据源?
返回的所有值都是字符串atm。所以它仍然很简单&#34;。
谷歌没有提出正确的结果。或者它可能提出了正确的,但我无法根据需要匹配它们。这就是我的动态数据的样子
答案 0 :(得分:0)
尝试将数据投影到您想要的表单中:
var _data = db.Select("select * from foobar")
.Select(d => new
{ customername = d.customername,
companyname = d.comapanyname
});
comboBox1.DisplayMember = "customername";
comboBox1.ValueMember = "companyname";
comboBox1.DataSource = _data;