C# 一个windows窗体中的两个datagridview=无法将数据保存到第二个datagridview 我创建了一个winform 我通过从数据源拖动一个表来添加一个datagridview 结果:我得到了一个带有datagridview和bindingnavigator的winform 我正在通过从数据源拖动另一个表,向同一winform添加第二个datagridview 结果:与bullet 3相同,但现在有两个DataGridView但是没有添加第二个bindingnavigator,不要问我为什么 我复制现有的bindingnavigator,并将副本调整为第二个datagridview 我查看了.Designer.cs文件,它在一致性方面看起来非常完美

C# 一个windows窗体中的两个datagridview=无法将数据保存到第二个datagridview 我创建了一个winform 我通过从数据源拖动一个表来添加一个datagridview 结果:我得到了一个带有datagridview和bindingnavigator的winform 我正在通过从数据源拖动另一个表,向同一winform添加第二个datagridview 结果:与bullet 3相同,但现在有两个DataGridView但是没有添加第二个bindingnavigator,不要问我为什么 我复制现有的bindingnavigator,并将副本调整为第二个datagridview 我查看了.Designer.cs文件,它在一致性方面看起来非常完美,c#,winforms,visual-studio-2008,sql-server-2005,datagridview,C#,Winforms,Visual Studio 2008,Sql Server 2005,Datagridview,现在来看问题-尽管两个DataGridView都有自己的BindingNavigatorSaveItem\u Click方法,代码指出各自的绑定源无法将第二个datagridview中的更改保存到数据库中 Anyone seen this? Any suggestions what to do? 我建议在代码中通过使用DataTable或对象集合而不是bindingnavigator来设置DataGridView的DataSource属性。我这样解决了它(我感谢dretzlaff17先生/女

现在来看问题-尽管两个DataGridView都有自己的BindingNavigatorSaveItem\u Click方法,代码指出各自的绑定源无法将第二个datagridview中的更改保存到数据库中

Anyone seen this? Any suggestions what to do?

我建议在代码中通过使用DataTable或对象集合而不是bindingnavigator来设置DataGridView的DataSource属性。

我这样解决了它(我感谢dretzlaff17先生/女士,他在我大脑的剩余部分启动了一些进程)


谢谢,你让我朝着正确的方向思考。不过,我仍然使用自动化的东西。(对我来说)解决方案是将UpdateAll更改为Update。问题是,UpdateAll应该这样做,并且在保存事件处理程序中是“预定义的”。。。但一些盖茨先生隐藏得很好的bug使得它有点不一致,特别是在我的问题中提到的场景中。
  private void tableMeLikeBindingNavigatorSaveItem_Click(object sender, EventArgs e)
  {
     try
     {
        this.Validate();
        this.tableMeLikeBindingSource.EndEdit();

        // IMPORTANT: the following predefined generic Update command
        // does NOT work (sometimes)
        // this.tableAdapterManager.UpdateAll(this.rESOURCE_DB_1DataSet);

        // instead we explicitely points out the right table adapter and updates
        // only the table of interest...
        this.tableMeLikeTableAdapter.Update(this.rESOURCE_DB_1DataSet.TableMeLike);
     }

     catch (Exception ex)
     {
        myExceptionHandler.HandleExceptions(ex);
     }
  }