更改datagridview后更新数据库表

时间:2012-10-05 20:45:10

标签: c# .net datagridview database-update

我已经广泛搜索了一种使用存储过程将datagridview中的更改更新到数据库的简单方法,并认为这种方法是我的答案。但我有一个问题。

我有一个名为“testData”的数据源的项目,其中包含一个名为“documents”的数据库表。

我有一个窗口表单,我拖动了“文档”表,因此documentsBindingSource和documentsTableAdaptor组件被自动添加到我的表单中。我添加了一个datagridview并将其数据源设置为documentsBindingSource;以及一个带有代码隐藏的“更新”按钮,如下所示。

一切正常,数据在运行时加载,我可以对datagridview中的数据进行更改。

但是,当我点击“更新”按钮时,我收到一条错误消息,指出这一点 “(dgvDocumentName.DataSource as DataTable).Rows”(在代码中突出显示)“...未设置为对象的实例”。

对于我做错了什么或错过了什么,我将不胜感激。

感谢。

“更新”按钮的代码隐藏:

private void btnUpdate_Click(object sender, EventArgs e)
{
  dgvDocumentName.EndEdit();
  foreach (DataRow row in (dgvDocumentName.DataSource as DataTable).Rows)
  {
    if (row.RowState != DataRowState.Unchanged)
    {
      String sAction;

      switch (row.RowState)
      {
        case DataRowState.Added:
          sAction = "I";
          break;
        case DataRowState.Deleted:
          sAction = "D";
          break;
        case DataRowState.Modified:
          sAction = "U";
          break;
        default:
          sAction = "U";
          break;
      }
      documentsTableAdapter.procActionDocuments(Convert.ToInt32(row["colDocumentID"]),
                                                row["colDocumentName"].ToString(),
                                                Convert.ToInt32(row["colDocumentType"]),
                                                row["colDocumentText"].ToString(),
                                                sAction);
    }
  }
}

0 个答案:

没有答案