让我困惑的一个问题!
我在用以下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就必须两边加""才可以呢?请各位帮我解释一下.
问题点数:10、回复次数:8Top
1 楼shxyz(shxyz)回复于 2004-12-03 19:40:22 得分 0
大家来帮我看看吧!Top
2 楼g961681(技术庸人(情商太低))回复于 2004-12-03 20:55:27 得分 0
你数据库中相应的字段是什么类型啊!Top
3 楼g961681(技术庸人(情商太低))回复于 2004-12-03 20:57:49 得分 10
你这里为了构造Update语句,当然两个变量都得是String了,不然你怎么构造SQL语句呢。
你前后两种写法生成的Sql语句不一样的。
上面一句生成
update HolderData set CardNo= 111 where HolderNo=3333
而下面一句则生成
update HolderData set CardNo= 111 where HolderNo='3333'Top
4 楼shxyz(shxyz)回复于 2004-12-03 21:22:35 得分 0
对应数据库里的字段是varchar类型的,
知道两种写法生成的SQL语句是不一样的,但不明白从意义上有什么不同,什么时候该以第一种方式写,什么时候必须按第二种方式写呢Top
5 楼g961681(技术庸人(情商太低))回复于 2004-12-03 21:26:12 得分 0
两种类型都是Varchar吗?Top
6 楼shxyz(shxyz)回复于 2004-12-03 21:30:39 得分 0
是的Top
7 楼shxyz(shxyz)回复于 2004-12-03 22:16:00 得分 0
upTop
8 楼shxyz(shxyz)回复于 2004-12-04 09:22:51 得分 0
up
Top




