关于字符型和数字型的问题请教一下
刚才被一个很小的问题搞s了调试能正常通过的代码如下所示:
set rs=server.CreateObject("ADODB.RecordSet")
sql="select * from answer1 where xm=' "&xm&" ' "
sql=sql&" and zw="&zw&""
'Response.Write sql
'Response.End
rs.open sql,conn,3,2
'职务和姓名相同的话,提示已经输入过
ifrs.eof then
'录入新信息
rs.addnew
rs("xm")=xm
rs("zw")=zw
rs.update
response.write "录入成功"
else
response.write"<script>alert('您已经提交成功,请不要重复输入!');location='default.htm'</script>"
response.end
end if
rs.close
set rs=nothing
response.redirect "result.aspx"
xm--姓名,字符文本型
zw--职务,数字型
我当时这样写
sql="select * from answer1 where xm= "&xm&""
sql=sql&" and zw="&zw&""
或者这样写
sql="select * from answer1 where xm=' "&xm&" ' "
sql=sql&" and zw=' "&zw&" ' "
程序都有问题,出来的结果不正常
写成第一个code就没问题
估计是数据类型不能随便乱写
因为我是拿来就用的 ,原理不是很懂,有达人可以指点一下,感激不尽 还有,我看书那时发觉,有时字符类型又用" "来包含
有时又用' '来包含
有点头晕
麻烦指点一下 没学过,不过和shell类似,我想在外面再包个' '是直接把"&xm&"打印出来,而不是将其识别为字符类型。 是不是太简单了,高手都不看 应该是字符用引号括住
数字不能吧。。
[ 本帖最后由 移民火星 于 2007-11-26 16:33 编辑 ] 可以去看一下正则表达式 双引号" "包着的叫字符串
如果字符串里包含双引号,那么就要把里面的双引号改成单引号' '
语文里的双引号用法一样的
而语句中的&只是将两个字符串连接起来而已
数字型就不用引号啦
引号外的zm之类的是字符型变量,那就相当于字符串
我也不知有没有说清楚,自己慢慢看吧 如果字符串里包含双引号,那么就要把里面的双引号改成单引号' '
按照这样说,我这句应该不是这样写啊
sql="select * from answer1 where xm=' "&xm&" ' "
应该是这样写才对啊
sql="select * from answer1 where xm=" '&xm&' " "
数字型就不用引号啦
确实是这样的
我把这句sql=sql&" and zw="&zw&""
改成sql=sql&" and zw="&zw
也是行得通的 sql="select * from answer1 where xm = '"&xm&"' and zw = "&zw
对于ASP等代码内部,SQL语句是一个字符串。
另外,善用转义字符,比如字符串中需要出现双引号,就必须用两个""(我没没记错的话,呵呵)
sql="select * from answer1 where xm=' "&xm&" ' "
这样写是对的
第一个双引号中的就是一个字符串
select * from answer1 where xm='
最后一个双引号里的单边引号也是一个字符串
xm也是字符串
用两个&将这三个字符串连接起来
sql正确的格式应该如下
select * from answer1 where xm="姓名"
sql="select * from answer1 where xm='姓名' "
由于两个&包含着的xm是变量,所以要用那种方式书写 不要把 "&xm&"看成是个整体就行啦
上面的第一个引号应该是跟最前面的引号对应的 豁然开朗,谢谢各位 11F~有兴趣兼任编程版斑竹么? 没兴趣...我向来对编程没什么感情... 俺要当版主,可惜不够power 原帖由 admin 于 2007-11-29 12:54 发表 https://www.gdutbbs.com/images/common/back.gif
没兴趣...我向来对编程没什么感情...
你觉得这个版有讨论过编程的东西么? 至少不想让人说这个版是毁在我手上的—_—应该是毁在16楼手上的
15楼感兴趣就去申请,向来我通过的概率都是蛮高的 路过算了 没眼看了 ls两位临时演员,活还是要干的
页:
[1]
2