zoukankan      html  css  js  c++  java
  • 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示例:

  • 相关阅读:
    每天一道算法题(13)——使用递归颠倒栈
    每天一道算法题(12)——和为n的连续正数序列或者随机数
    函数模板
    答题总结(1)
    顶点间最短路径长度之探寻算法
    最小生成树
    new与delete,malloc与free
    C++的继承与接口
    笔记13 AOP中After和AfterReturning的区别
    笔记12 注入AspectJ切面
  • 原文地址:https://www.cnblogs.com/pcbren/p/8552862.html
Copyright © 2011-2022 走看看