datagridview值未保存

时间:2013-04-29 20:28:01

标签: c# datagridview

在Winform应用程序上,我有一个datagridview,允许用户查看数据库中的几个日期。它显示日期在所选范围内的行,然后用户可以更改任何行上的日期并点击更新按钮将这些更改保存到数据库。然后,表单刷新datagridview,删除不再在所选日期范围内的任何行。

首次填充或刷新数据网格时,我从数据库中提取数据,并将Changed列默认为False。这将成为Datagridview的数据源。

dadapt.Fill(lDT_transReview);
lDT_transReview.Columns.Add("Changed",typeof(Boolean), "false");
dgTransReview.DataSource = lDT_transReview;

要检查日期是否实际更改(不只是输入相同的日期),我将原始日期存储在begin edit事件的临时变量中。然后在结束编辑事件我比较日期并将'已更改'布尔复选框设置为true。

dgTransReview["Changed", e.RowIndex].Value = "True";

然后在保存行的代码上,我使用foreach循环来查看'changed'列是否为true。

foreach (DataGridViewRow row in dgTransReview.Rows)
        {
            if (row.Cells["Changed"].Value.ToString() == "True")
            {
               //Code to save individual row with changes to database
            }
        }
TrandRefresh();

我遇到的问题是Changed单元格似乎没有保留该值。当它将值设置为True时,单元格在更新之前是空的(但是之后为True),当我到达foreach循环时,我得到一个对象没有设置错误,因为单元格再次为空。

2 个答案:

答案 0 :(得分:1)

从不介意我弄清楚..问题是Datagrid中的Changed Column没有将数据表设置为表中的Changed列。 (我还必须改变将Changed列添加到数据表的方式,因为上面显示的方法使该字段只读。)

答案 1 :(得分:-1)

你可以使用: 第一:选择(焦点)文本框出数据网格视图 第二个:sendkeys.send("{F2}") 到这个文本框 第三:使用您的函数将数据保存在 datagridview 中 BR 阿什拉夫