【问题标题】:Adding new DataRow doesn't add row to DataGridView添加新的 DataRow 不会将行添加到 DataGridView
【发布时间】:2011-11-03 07:10:10
【问题描述】:

在这个问题上我一直在用头撞墙,但我无法让它工作 - 所以我想我会在这里问一下,以防万一它很简单。

基本上,我有一个 DataGridView,我正在尝试以编程方式向它添加一行。

这是我正在使用的代码:

boundBookDataSet.LoadBoundBook.AddLoadBoundBookRow(
    null, null, null, null, null, DateTime.Now, null, null, null, 
    false, false, -1, null, -1, -1);

我还尝试在添加行后在 DataSet 和新 DataRow 上调用 AcceptChanges,我还尝试在 DataGridView 上调用 Refresh。

无论如何,无论我做什么,我最终都会得到 boundBookDataSet.LoadBoundBook.Count==70 和 loadBoundBookBindingSource.Count==69。我的 DataGridView 不会拾取新行,因为它没有反映在绑定源中(至少这是我的猜测)。

遗憾的是,这是可行的——但我做了一个巨大的改变,但不知道是什么破坏了它。被破坏的代码根本没有改变......

如果有人知道如何解决此问题,我将非常感谢您的帮助。

【问题讨论】:

    标签: c# datagridview bindingsource datarow


    【解决方案1】:

    假设它的 winforms 你谈论的问题的答案可以在这个线程上找到:http://social.msdn.microsoft.com/Forums/en-US/winformsdatacontrols/thread/f12158b3-4510-47cb-b152-409489c3a51a/

    【讨论】:

    • 啊哈!我想到了。 :) 当我再次查看 BindingSource 中的字段时,我意识到我设置了 Filter 字段。如果我删除过滤器,则 loadBoundBookBindingSource.Count 会正确递增,并且 DataGridView 会拾取新记录。基本上,看来我需要清除过滤器,添加记录,然后再次设置过滤器。
    【解决方案2】:

    啊哈!我想到了。 :)

    当我再次查看 BindingSource 中的字段时,我意识到我设置了 Filter 字段。如果我删除过滤器,loadBoundBookBindingSource.Count 会正确递增,DataGridView 会获取新记录。

    基本上,看来我需要清除过滤器,添加记录,然后再次设置过滤器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      • 1970-01-01
      • 2017-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多