数据网格视图出错

时间:2012-06-17 04:35:37

标签: c# datagridview

我遇到了数据网格视图的问题。我附上了代码&错误信息。我想知道这个错误的原因。感谢。enter image description here

2 个答案:

答案 0 :(得分:0)

而不是设置DataMember只需调用绑定方法dataGridView1.DataBind()。如MSDN所述,DataMember用于以下内容:

  

获取或设置DataGridView正在为其显示数据的数据源中的列表或表的名称。

答案 1 :(得分:0)

您不需要LINQ查询。只需将列表设置为DataSource即可。在这种情况下,无需设置DataMember。

    private void Form4_Load(object sender, EventArgs e)
    {
        List<Products> productList = new List<Products>()
        {
            new Products{ProductName = "P1", ProductPrice = 56, Category = "c1"},
            new Products{ProductName = "P2", ProductPrice = 36, Category = "c1"}    
        };

        //var p = from s in productList select s;

        dataGridView1.DataSource = productList;
        //dataGridView1.DataMember = p.ToString();
    }

修改

LINQ查询返回IEnumerable;但是DataGridView类支持标准的Windows窗体数据绑定模型。这意味着数据源可以是实现以下接口之一的任何类型:IList,IListSource,IBindingList和IBindingListView。因此,您需要将ToList()调用到LINQ结果中。请在此MSDN Link

上详细了解相关信息

但是在你的情况下这样做就像将productList设置为DataSource一样(我的意思是结果将是相同的,因为LINQ查询中没有涉及排序或分组)。

如果您想使用LINQ,请尝试此操作(您的列表将按ProductPrice按升序排序)

   var p = from s in productList orderby s.ProductPrice select s;
   dataGridView1.DataSource = p.ToList();