我在用以下update语句对数据库进行更新时会发生错误,SQL语句如下:
sNewSql:='update HolderData  set CardNo='+ CardNo +' where HolderNo='+ nHolderNo;
说"列名无效".
改成如下就可:
sNewSql:='update HolderData set CardNo='+ CardNo +' where HolderNo='''+ nHolderNo+'''';
我不明白为什么会这样,这个nHolderNo是string类型,CardNo也是string类型,为何CardNo就不需要加"",
而nHolderNo就必须两边加""才可以呢?请各位帮我解释一下.

解决方案 »

  1.   

    你这里为了构造Update语句,当然两个变量都得是String了,不然你怎么构造SQL语句呢。
    你前后两种写法生成的Sql语句不一样的。
    上面一句生成
    update HolderData  set CardNo= 111 where HolderNo=3333
    而下面一句则生成
    update HolderData  set CardNo= 111 where HolderNo='3333'
      

  2.   

    对应数据库里的字段是varchar类型的,
    知道两种写法生成的SQL语句是不一样的,但不明白从意义上有什么不同,什么时候该以第一种方式写,什么时候必须按第二种方式写呢