Conn.Execute("UPDATE Company SET Money=Money+"&commy&" Where ID in ("&checkpostup&")")
或者用for循环ID的形式
为什么Money变成commy的两倍了
比如Money原来是50 commy=10  执行一次应该是60 可怎么变成70了啊
郁闷啊 请大虾们赐教

解决方案 »

  1.   

    跟踪一下SQL,打印出SQL 看看你的语句是啥?
      

  2.   

    打印出SQL 是对的 在查询分析器执行都是对的 郁闷啊
      

  3.   

    测试没发现问题
    create table #p
    (
    id int,
    Money int
    )
    insert into #p select 1,50select * from #pid          Money
    ----------- -----------
    1           50(1 row(s) affected)UPDATE #p SET Money=Money+10 
    Where ID in (1)     select * from #pid          Money
    ----------- -----------
    1           60(1 row(s) affected)
      

  4.   

    Conn.Execute("UPDATE Company SET Money="&commy&" Where ID in ("&checkpostup&")")
    你这么 看看 结果 是多少
      

  5.   

    感觉还是你传值的时候commy的值就已经变了。
    还是debug一下程序,看看在哪边修改了commy的值,sql应该这边没问题。
      

  6.   

    那就是你的程序执行了两次,你可以用事件探查器看一下执行过哪些脚本,
    或建议你给你的表增加一个更新时间字段,在更新的时候,把更新时间也更新,默认修改为getdate()
      

  7.   

    给个固定值试验下吧,还是有问题,就是多执行了一次,SQL语句没问题
      

  8.   

    Conn.Execute("UPDATE Company SET Money=Money+"&commy&" Where ID in ("&checkpostup&")")就里应该执行两次吧!
    主要因为in checkpostup应该是两个值吧,如果三个值 ,可能就加+30,
    LZ检查一下程序!