Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataGridView在更新后的第一行显示一些空单元格_C#_Winforms_Datagridview - Fatal编程技术网

C# DataGridView在更新后的第一行显示一些空单元格

C# DataGridView在更新后的第一行显示一些空单元格,c#,winforms,datagridview,C#,Winforms,Datagridview,我的DataGridView绑定到BindingSource,该BindingSource的数据源也是DataSet。dataseth中相应的TableAdapter包含一个Fill方法,用于从Access数据库提供数据。我用数据填充DataGridView,如下所示: myTableAdapter.Fill( myDataSet.MyDataTable); 所有这些都很好,正如预期的那样。当我使用同样正常工作的UpdateQuery更改数据,然后再次单击DataGridView中的任何一行时

我的DataGridView绑定到BindingSource,该BindingSource的数据源也是DataSet。dataseth中相应的TableAdapter包含一个Fill方法,用于从Access数据库提供数据。我用数据填充DataGridView,如下所示:

myTableAdapter.Fill( myDataSet.MyDataTable);
所有这些都很好,正如预期的那样。当我使用同样正常工作的UpdateQuery更改数据,然后再次单击DataGridView中的任何一行时,就会出现问题-只要单击,始终第一行的最后两个单元格就会显示为空。无论我单击哪一行,它始终是第一行中的单元格,并且只有在我执行UpdateQuery之后

当我直接检查Access数据库时,一切正常(即更新成功)。当我重新启动应用程序时,所有内容都会毫无问题地显示出来,直到下一次调用UpdateQuery并单击DataGridView

我还尝试在DataGrid视图上调用EndEdit`` andRefresh,在DataSet和相应的DataTable上调用AcceptChanges`-没有任何更改

更新

所描述的行为仅在执行UpdateQuery、插入和删除工作后发生,没有问题数据正确更新,没有显示问题

更新2

当我使用不同的事件处理程序时,问题也存在——最初我使用CellClick,我也尝试使用CellContentClick和CellMouseClick。甚至当我不使用鼠标,而是使用键盘在DataGridView中导航时,也会发生这种情况


似乎只是我的数据显示不起作用,我遗漏了什么?在我的表单中使用的所有DataGridView中都会出现相同的错误,无论我查询/更新的数据是多么简单或复杂。

因此这是TextBox的一些恶劣行为。Clear方法。我在下面添加了我在发布问题时认为不必要的更多信息:

在DataGridView下,我有一些数据绑定文本框控件-数据绑定的定义如下

txtSomeId.DataBindings.Add( "Text", myDataGridView.DataSource, "ID" );
调用UpdateQuery方法后,我重新加载了数据,然后清除了这些TextBox控件的内容:

txtSomeId.Clear();
据介绍,这种方法,

清除文本框中的所有内容

这是该页面提供的所有信息。删除这些代码行后,所有工作都按预期进行,不再存在任何问题

调用Clear方法也意味着数据绑定被部分删除,这是我没有预料到的


我写了部分代码,因为绑定仍然适用于DataGridView和TextBox控件中的其他行,只是不适用于第一行,这里仅适用于某些单元格。在我看来,这是一种非常奇怪的行为,也许其他人可以对此提供更多信息。

尝试设置BindigSource.AllowNew=false@daniele3004-试过了,没有按预期工作-为什么会有不同?我使用BindingSource加载列表或数组。就我而言,它是有效的。