使用C#.net更新DataGrid中的单元格

时间:2011-01-24 09:38:56

标签: c# datagrid datagridview

我发现ListView对我的程序来说非常慢。因此我决定转移到DataGrid。

在此之前,我只用于列出数据库源中的数据。

我使用以下代码向DataGrid添加新行:

        DataGridViewRow row = new DataGridViewRow();
        row.CreateCells(MyGrid);  
        row.Cells[0].Value = "1";  
        MyGrid.Rows.Add(row);
        row.Cells["Category"].Value = "Vegetables";
        row.Cells["Item"].Value = "Carrot";
        row.Cells["Price"].Value = "12.50";

我使用类似的模式为不同的东西添加新行。如果有更好的方法可以直接将变量添加到数据库中,请告诉我。

我想知道的主要内容是如何编辑单元格数据。

例如,我有以下数据表:

ID    ITEM     Price
1    item A     100
2    item B     120
3    item C     121
4    item D     103

我想将项目B 的价格值从“ 120 ”更改为“ 210 ”。  我怎么能做到这一点?

在ListView中,我查找了值为项目B 的列,并获取价格的列索引并替换了该值。我怎么能在DataGrid中做同样的事。

我正在使用C#.net

附加说明:    生成的列表是一个动态列表,我需要找到值为 B 的单元格,然后更改相应行的价格列的值。

2 个答案:

答案 0 :(得分:0)

为什么不能将数据对象列表绑定到Datagrid,并且只需修改数据对象列表就完成了!

答案 1 :(得分:0)

首先,创建自定义DataTable

DataTable dt = new DataTable();
dt.Columns.Add("Id",typeof(int));
dt.Columns.Add("Item",typeof(string));
dt.Columns.Add("Price",typeof(decimal));
dt.AcceptChanges(); // This is the point, where you can change dataTable items.

并将您的商品添加到DataTable行,例如:

foreach(var rowItem in blabla)
{
object[] row = new object[]
{
rowItem.Id,
rowItem.Item,
rowItem.Price
};
dt.Rows.Add(row);
}

然后将dataTable绑定到gridView

gridView1.DataSource = dt;

现在对gridView所做的更改也会更新你的DataTable:)