Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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# .NET DataSet.HasChanges错误地为false_C#_Data Binding_Dataadapter - Fatal编程技术网

C# .NET DataSet.HasChanges错误地为false

C# .NET DataSet.HasChanges错误地为false,c#,data-binding,dataadapter,C#,Data Binding,Dataadapter,是否有人发现ds.hasChanges()为false,尽管您在断点处检查ds时,ds明显有更改? 我已经看了很长一段时间了,我看不出有什么不对 // connectionstring and command has been set DataSet ds = new DataSet(); BindingSource myBindingSource = new BindingSource(); SqlDataAdapter dataAdapter1 = new SqlDataAdapter();

是否有人发现ds.hasChanges()为false,尽管您在断点处检查ds时,ds明显有更改? 我已经看了很长一段时间了,我看不出有什么不对

// connectionstring and command has been set
DataSet ds = new DataSet();
BindingSource myBindingSource = new BindingSource();
SqlDataAdapter dataAdapter1 = new SqlDataAdapter();
dataAdapter1.Fill(ds, "Data");
myBindingSource.DataSource = ds.Tables["Data"];

// then changes made to the datatable on a windows form using bindingnavigator
ds.HasChanges(DataRowState.Modified); // is false
现在,当我使用HasChanges在行之后设置断点并使用DataSet Visualizer时,我可以看到数据集实际上已经更改,但HasChanges仍然返回false

我肯定我错过了显而易见的。。。有人能看出我做错了什么吗


干杯

Windows窗体没有对数据集执行.AcceptChanges()调用,是吗

编辑: 好吧,所以不是那样。根据我的评论,接下来的事情:
1) 记录是否已被修改,而不仅仅是添加/删除?DataSet.HasChanges()返回什么?

2) GetChanges()为数据集中的特定数据表返回什么?

首先尝试在BindingContext上调用EndCurrentEdit():

DataTable dt = ds.Tables["Data"];
this.BindingContext[dt].EndCurrentEdit();

if(ds.HasChanges(DataRowState.Modified))
{
  // do your stuff here
}

还可以尝试调用
myBindingSource.EndEdit()
,将任何未提交的数据推送到
DataTable

对DataTable做了哪些更改,即行是否确实正在更新,而不是添加?另外,dt.Tables[“Data”].HasChanges是否返回true?1。记录已更新,未删除或添加2。返回false 3。datatables没有hasChanges,但如果您是指返回null作为wellBrilliant的getchanges!非常感谢+1.