update tb_purview set sysset=@sysset where id=@id检查你的sql , 赋值参数后. 是否能更新成功?

解决方案 »

  1.   


    我 赋值参数后return (data.RunProc("update tb_purview set sysset=1,readset=1,bookset=1,borrowback=1,sysquery=1 where id=1", prams));
    提示$exception {"标准表达式中数据类型不匹配。"} System.Exception {System.Data.OleDb.OleDbException}
      

  2.   

    数据类型不匹配sysset=1,readset=1,bookset=1,borrowback=1,sysquery=1 where id=1
    你给的是int 类型. 看看 数据库中这几个字段的类型是否都对应到了.
      

  3.   

    sysset=1,readset=1,bookset=1,borrowback=1,sysquery=1是boolean,id是整形
      

  4.   

    刚才对参数赋值,调试通过,那为什么 用return (data.RunProc("update tb_purview set sysset=@sysset where id=@id", prams));
    就不行呢
      

  5.   

    data.MakeInParam("@sysset",  OleDbType.Boolean,2,purviewmanage.SysSet )你的赋值中有这样一段.如果该值是 bool 类型.  就不能用 sysset=1 的形式,尝试 true or false
      

  6.   

    我在用断点调试过程中,发现在界面设的值都传进到id,sysset,readset,bookset,borrowback,sysquery里去了,但就是cmd.ExecuteNonQuery返回值为0,说明就没有执行查询语句
      

  7.   

     记忆中 ExecuteNonQuery 返回的是受影响的行数. ex : update t1 set name = '1' where id = '100'
     
     如果此时 db 中没有 id = '100' 的数据. 那么此时就会 返回 0 .
      

  8.   

    对呀,我设的id就是第一条记录的id,也就是说受影响的有1条数据,至少应该返回1,为什么没有呢
      

  9.   

             return (data.RunProc("update tb_purview set sysset=1,readset=1,bookset=1,borrowback=1,sysquery=1 where id='1'", prams));//return (data.RunProc("update tb_purview set sysset=@sysset,readset=@readset,bookset=@bookset,borrowback=@borrowback,sysquery=@sysquery where id=@id", prams));上面那条赋具体值,运行顺利,t=1,但改回下面那条后就t=0,我在用断点调试过程中,发现在界面设的值都传进到id,sysset,readset,bookset,borrowback,sysquery里去了,但就是cmd.ExecuteNonQuery返回值为0,无语啊 
           
      

  10.   

    先在数据库的TSQL工具中,执行一下你的目标语句,看看能不能更新到数据.直到调试好了后再在程序中写
      

  11.   

    直接执行 sql时 时可以的  但如果是用参数传值执行,数据类型要对应上
      

  12.   

    我的也是,最近一个老是,返回数为0 但用 SQLrdataeader 就有读出来数据