update random_t set yasf=yasf+'|" + tq.Yasf + "',ra_score=ra_score+" + tq.Ra + " where qid='" + tq.Qid + "'
yasf字符串, ra_score是双精度,qid是字符串。怎么加入Access数据库为空了?但是也返回受影响的行?

解决方案 »

  1.   

    哪个列为空了?
    检查 tq.Yasf 和 tq.Ra 的值.
      

  2.   

    貌似都和sql server无关,建议去相关版
      

  3.   

    从表面来看好象还是动态的SQL?
      

  4.   

    断点调试;1、在这步的时候参数值有木有问题2、打印出来的SQL看和你预期的对不对3、在查询分析器可以执行该SQL否4、修改后停掉断点试试看
      

  5.   

    参数没有问题,用MS SQL测试正常,如果表达式里面没有计算的话就可以写入!气死我了
      

  6.   

    基本能确定你的这个SQL是动态的,需要动态SQL语句.一般语言都是使用exec...
      

  7.   


    str='update random_t set yasf=yasf+''|'" + tq.Yasf + "''',ra_score=ra_score+'" + tq.Ra + "' where qid='''" + tq.Qid + "''''
    ???
      

  8.   

    你这个调试打印出的SQL语句是什么撒!包含计算的。
      

  9.   

    这是调试时的语句
    update random_t set yasf=yasf+'sss' ,ra_score=ra_score+2.5 where qid='20111125840'
      

  10.   


    --这样试试
    update random_t 
    set yasf=iif(IsNull(yasf),'',yasf )+'sss',
    ra_score=iif(IsNull(ra_score),0.0,ra_score)+2.5 
    where qid='20111125840'