【发布时间】:2018-05-31 20:06:00
【问题描述】:
我有一个组合框,其中填充了数据库的标题。
当用户选择标题时,我想在列表框中显示该列的值。
我正在尝试这样做。
private void button3_Click_2(object sender, EventArgs e)
{
listBox1.Items.Clear();
//name of column to display data from
var selectedColumn = comboBox1.Text.ToString();
//dataRow array of data
var selectedColumnItems = aSH_ORDER_DBDataSet1.ASH_PROD_ORDERS.Select(selectedColumn);
//iterate through dataRow and display in listBox
foreach (var columnItem in selectedColumnItems)
{
listBox1.Items.Add(columnItem);
}
}
但是,如果我选择非布尔类型的列,则会出现此错误:
“过滤器表达式不计算为布尔项”
即使我选择了一个布尔列,它也只会显示程序的名称。然而,它似乎确实从数据库中获取了一些数据,因为它从数据库中的“真实”术语的数量中显示了正确数量的程序名称。
【问题讨论】:
-
这里缺少重要信息。 comboBox1.Text 的内容是什么? (并且不要在字符串属性上调用 ToString,这是没用的)
-
"它只是显示程序的名称" 我猜这是
ASH_PROD_ORDERS中项目类型的命名空间,因为你添加了整个columnItem。我认为您要么需要在listBox1中设置DisplayMember,要么使用listBox1.Items.Add(columnItem.Name);或您想要显示的 ash_prod_order 的任何属性。