c# - DataTable.Select ("Complete").Count<> 没有给出正确的总数
问题描述
在我的 Winforms 应用程序保存按钮中,我将要保存的记录的 Complete 列更改为 true,稍后在同一个按钮中,我得到了已完成的记录总数(将显示在屏幕上):
dtFacilities.Rows[grdFacilities.CurrentCell.RowIndex].SetField ("Complete", true);
...
...
...
Completed = dtFacilities.Select ("Complete").Count<DataRow>();
当我查看 DataTable 时,我现在可以在示例中看到我有两条记录,该标志设置为 true。一条记录是以前保存的,一条是我刚刚在他们单击“保存”按钮时更新的新记录。但是,Completed(一个 int)返回 1。用户第一次单击按钮时,Completed 不会更新。在第一次不更新之后,它会正确更新。
有谁看到我可能做错了什么?如果有帮助,我可以提供更多代码。
同一行代码在我的加载事件中完美运行:
Completed = dtFacilities.Select ("Complete").Count<DataRow>();
只是不在我的 Save 方法中。
解决方案
看起来我正在失去对当前行的追踪。这是我在那个保存按钮中的原件(在我实际得到总数之前):
grdFacilities.Rows [grdFacilities.CurrentCell.RowIndex].Cells ["Complete"].Value = true;
dtFacilities.Rows [grdFacilities.CurrentCell.RowIndex].SetField ("Complete", true);
DataRow dr = dtFacilities.Rows.Find (grdFacilities.CurrentCell.Value);
dr ["Complete"] = true;
我发现如果我颠倒这些行,我的总计工作正常:
DataRow dr = dtFacilities.Rows.Find (grdFacilities.CurrentCell.Value);
dr ["Complete"] = true;
grdFacilities.Rows [grdFacilities.CurrentCell.RowIndex].Cells ["Complete"].Value = true;
dtFacilities.Rows [grdFacilities.CurrentCell.RowIndex].SetField ("Complete", true);
推荐阅读
- mysql - 在 vb.net 中执行命令 mysql 查询期间遇到致命错误
- concrete5 - Concrete5 Stacks & Blocks
- react-native - react-native StyleSheet borderRadus 兼容性
- javascript - 我应该在哪里插入'@babel/polyfill'?:main.js 或每个模块
- c# - C# 在同一窗口中调用 cmd/bat 文件
- autodesk-forge - 将场景灯光添加到 Forge Viewer
- swift - 从当前用户更新 firebase 数据库
- laravel - Laravel Vuetify 服务器端数据表是否有任何片段(GitHub 或其他)?使用 jQuery Datatable 等功能齐全的数据表
- android - 从android应用程序的下拉列表中选择项目后,元素不可见
- reactjs - 在单个 useEffect 中反应钩子状态