如果更改了另一个字段值,如何编辑特定字段值?

时间:2014-01-01 11:11:24

标签: .net winforms datagridview bindingsource datarowview

WinForm aplication,.Net framework 4.5 vs2012 and Sqlserver 2008 R2

在我的表单中,如果"BindingSource_CurrentItemChanged"(用户插入新行),我会使用row.IsNew添加新值

 DataRowView row = (DataRowView) this.BindingSource.Current;
 //if row is null then exit form method.
 if(row==null)
    return;
 if(row.IsNew)
    {
      row["CreatedUserID"] = this.UserID;
      row["ModifiedUserID"] = this.UserID;
    }  

这成功了。

然后我想编写一个方法,当用户编辑一个欲望字段值时,我的代码会自动将“UserID”放入ModifiedUserID(有些事情就像这样):

  ... row["ModifiedUserID"] = this.UserID;

我在BindongSource_ListChanged中使用了以下代码,但收到错误:

if (e.ListChangedType == ListChangedType.ItemChanged)
        {
            DataRowView row = (DataRowView)this.ApplicationFilesBindingSource.Current;
            if (row == null)
                return;
            row["ModifiedUserID"] = this.ID;
        }

错误:      DataTable内部索引已损坏:'5'。

之后如果在BindingSource_CurrentItemChanged

中编写代码
  if (row.Row.RowState == DataRowState.Modified)
            row["ModifiedUserID"] = User.User.Current.ID;

此代码也引发了同样的异常:

错误:      DataTable内部索引已损坏:'5'。

我将此代码更改为"ModifiedUserID"到this.UserID?  BindingSourceDataGridView

的哪个事件

0 个答案:

没有答案