如何将DataTable绑定到DataGridView

时间:2014-05-13 13:25:18

标签: c# winforms datagridview

我正在尝试将DataTable绑定到DataGridView,如下所示;

DataTable table = new DataTable();
foreach (ConsumerProduct c in ctx.ConsumerProducts)
{
    DataRow row = table.NewRow();
    row["Id"] = c.ID;
    row["Model"] = c.Model;
    row["Status"] = "Offline";

    table.Rows.Add(row);
}
dataGridView1.DataSource = table;

我在第一行row["Id"]

得到例外
  

专栏' Id'不属于桌子。

P.S。我已经在dataGridView的设计器视图中添加了这些列。

1 个答案:

答案 0 :(得分:1)

您刚刚创建了一个空白DataTable,然后您尝试将数据添加到特定列,例如IdModelStatus

您还必须添加这些列。

DataTable table = new DataTable();
table.Columns.Add("Id");
table.Columns.Add("Model");
table.Columns.Add("Status", typeof(string)); //with type

招架没有问题。

您还可以将所需列投影为匿名类型,然后将其绑定到数据网格,如:

var result = ctx.ConsumerProducts
                .Select(r=> new 
                {
                    Id = r.ID, 
                    Model = r.Model,
                    Status = "Offline"
                }).ToList();
dataGridView1.DataSource = result;