【发布时间】:2011-08-17 12:17:05
【问题描述】:
我有桌子
product(table name)
product_id
product_name
product_image
product_price
product_description
category_id
category(table name )
category_id
category_name
category_description
我有一个组合框,命名为categoryCombobox,网格视图命名为productgridview
我正在尝试根据组合框中的选择填充数据网格.. 像这样 ....
private viod form_load(object sender, EventArgs e)
{
var products = from prods in abc.products
select new
{
prods.product_Id,
productname = prods.product_Name,
productimage = prods.product_Image,
productprice = prods.product_Price,
productdescription = prods.product_Description
};
productbindingsource.DataSource = products;
productgridview.DataSource = productbindingsource;
productgridview.Columns[0].Visible = false;
}
private void categoryCombobox_SelectedIndexChanged(object sender, EventArgs e)
{
// is this query correct
var categoryid = from productcategories in abc.categories
where productcategories.category_Name.Equals(categoryCombobox.Text)
select productcategories.category_Id;
var produc = from pros in abc.products
where pros.Category_Id.Equals(categoryid)
select new
{
productname = pros.product_Name,
productimage = pros.product_Image,
productprice = pros.product_Price,
productdescription = pros.product_Description
};
productbindingsource.DataSource = produc;
productgridview.DataSource = productbindingsource;
productgridview.Columns[0].Visible = false;
}
遇到这样的错误......
错误:在这一行 productbindingsource.DataSource = produc;
用户代码未处理不支持的异常
无法比较“System.Linq.IQueryable`1”类型的元素。 只有原始类型(例如 Int32、String 和 Guid)和实体 支持类型。
【问题讨论】:
-
需要更多信息才能提供帮助,例如 abc.products 的构成。
-
错误的哪一部分你不明白?它非常清楚地解释了问题
-
@kieren 如果你理解请尝试解决这个问题我仍然遇到同样的问题
-
您能修改一下格式吗?
-
我再说一遍“错误的哪一部分你不明白?”.. 它说你不能比较
IQueryable类型的元素,你必须比较原始类型。所以,问题是,您正在尝试比较IQueryable对象..
标签: c# winforms combobox notsupportedexception