FPC报价模块配置 UpdateCommand影响了预期 1 条记录中的 0 条 解决办法
今天在增加P4厂 FPC报价模块配置,增加刚挠信息节点,在保存时报错:UpdateCommand影响了预期 1 条记录中的 0
保存时使用:SqlDataAdapter批量更新DataTable,怎么回事呢,以前使用SqlDataAdapter保存一切都好好的,
今天这咋咱不行了呢。
接着准备调试发现原因:
检查DataRow行RowState为 DataRowState.Modified OK呀,
接着检测DataTable数据,很正常,没发现问题
然后查看传入的参数,一切也没毛病
这就奇怪了。
想想以前研究过:SqlDataAdapter批量更新机制,是能过传入Select SQL与DataTable自动生成SQL达到批量更新,
于是我用用SQL Server Profile工具,原因直接定位为Update SQL,查看Update SQL语句,
发现Where条件中的Params字段是String型Flase或True
原来问题出在这里,两边数据类型不一致
UI界面中Params为bool类型
数据库中Params为String类型
找到问题点解决问题点,就很容易决此问题了,
要想实现使用SqlDataAdapter批量保存,且为了达到底层数据用string,UI界面使用bool,实现兼容,
解决办法:
1.在读取数据源前,先将数据源中Params字段值1改为True,0改为Flase字符
2.将模版更新到实际数据源中,保证数据源为全集(必须操作此步,不然用SqlDataAdapter保存也出错,不然得换种方式保存)
3.由于UI界面是bool,数据源为String类型,读取时将String转为bool
4.接着正常使用SqlDataAdapter即可
UI示例:
DB示例:
作者:pcbren 微信号:yadnfku QQ号: 254566449
博客地址:https://www.cnblogs.com/pcbren/
声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。
如果大家感觉我的博文对大家有帮助,请推荐支持一把。