工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 6493|回复: 20

关于字符型和数字型的问题请教一下

[复制链接]
发表于 2007-11-25 02:41 | 显示全部楼层 |阅读模式
刚才被一个很小的问题搞s了

调试能正常通过的代码如下所示:

  1. set rs=server.CreateObject("ADODB.RecordSet")
  2. sql="select * from answer1 where xm=' "&xm&" ' "
  3. sql=sql&" and zw="&zw&""
  4.      'Response.Write sql
  5.            'Response.End
  6. rs.open sql,conn,3,2
  7. '职务和姓名相同的话,提示已经输入过
  8. if  rs.eof then
  9.   '录入新信息
  10.   rs.addnew
  11.   rs("xm")=xm
  12.   rs("zw")=zw
  13. rs.update
  14.   response.write "录入成功"
  15. else
  16. response.write"<script>alert('您已经提交成功,请不要重复输入!');location='default.htm'</script>"
  17. response.end
  18. end if
  19. rs.close
  20. set rs=nothing
  21. response.redirect "result.aspx"
复制代码


xm--姓名,字符文本型
zw--职务,数字型

我当时这样写

  1. sql="select * from answer1 where xm= "&xm&"  "
  2. sql=sql&" and zw="&zw&""
复制代码


或者这样写


  1. sql="select * from answer1 where xm=' "&xm&" ' "
  2. sql=sql&" and zw=' "&zw&" ' "
复制代码


程序都有问题,出来的结果不正常
写成第一个code就没问题
估计是数据类型不能随便乱写
因为我是拿来就用的 ,原理不是很懂,有达人可以指点一下,感激不尽
 楼主| 发表于 2007-11-25 02:43 | 显示全部楼层
还有,我看书那时发觉,有时字符类型又用" "来包含
有时又用' '来包含
有点头晕
麻烦指点一下
回复

使用道具 举报

发表于 2007-11-25 02:59 | 显示全部楼层
没学过,不过和shell类似,我想在外面再包个' '是直接把"&xm&"打印出来,而不是将其识别为字符类型。
回复

使用道具 举报

 楼主| 发表于 2007-11-26 12:42 | 显示全部楼层
是不是太简单了,高手都不看
回复

使用道具 举报

发表于 2007-11-26 16:30 | 显示全部楼层
应该是字符用引号括住
数字不能吧。。

[ 本帖最后由 移民火星 于 2007-11-26 16:33 编辑 ]
回复

使用道具 举报

发表于 2007-11-28 19:15 | 显示全部楼层
可以去看一下正则表达式
回复

使用道具 举报

发表于 2007-11-28 22:06 | 显示全部楼层
双引号" "包着的叫字符串
如果字符串里包含双引号,那么就要把里面的双引号改成单引号' '
语文里的双引号用法一样的
而语句中的&只是将两个字符串连接起来而已

数字型就不用引号啦
引号外的zm之类的是字符型变量,那就相当于字符串

我也不知有没有说清楚,自己慢慢看吧
回复

使用道具 举报

 楼主| 发表于 2007-11-28 23:10 | 显示全部楼层
如果字符串里包含双引号,那么就要把里面的双引号改成单引号' '

按照这样说,我这句应该不是这样写啊
sql="select * from answer1 where xm=' "&xm&" ' "

应该是这样写才对啊
sql="select * from answer1 where xm=" '&xm&' " "


数字型就不用引号啦

确实是这样的
我把这句
sql=sql&" and zw="&zw&""

改成
sql=sql&" and zw="&zw

也是行得通的
回复

使用道具 举报

发表于 2007-11-29 10:28 | 显示全部楼层
sql="select * from answer1 where xm = '"&xm&"' and zw = "&zw

对于ASP等代码内部,SQL语句是一个字符串。

另外,善用转义字符,比如字符串中需要出现双引号,就必须用两个""(我没没记错的话,呵呵)

评分

1

查看全部评分

回复

使用道具 举报

发表于 2007-11-29 10:29 | 显示全部楼层

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是变量,所以要用那种方式书写
回复

使用道具 举报

发表于 2007-11-29 10:34 | 显示全部楼层
不要把 "&xm&"  看成是个整体就行啦
上面的第一个引号应该是跟最前面的引号对应的

评分

1

查看全部评分

回复

使用道具 举报

发表于 2007-11-29 11:14 | 显示全部楼层
豁然开朗,谢谢各位
回复

使用道具 举报

发表于 2007-11-29 12:01 | 显示全部楼层
11F~有兴趣兼任编程版斑竹么?
回复

使用道具 举报

发表于 2007-11-29 12:54 | 显示全部楼层
没兴趣...我向来对编程没什么感情...
回复

使用道具 举报

 楼主| 发表于 2007-11-29 14:44 | 显示全部楼层
俺要当版主,可惜不够power
回复

使用道具 举报

发表于 2007-11-29 18:02 | 显示全部楼层
原帖由 admin 于 2007-11-29 12:54 发表
没兴趣...我向来对编程没什么感情...


你觉得这个版有讨论过编程的东西么?
回复

使用道具 举报

发表于 2007-11-30 17:18 | 显示全部楼层
至少不想让人说这个版是毁在我手上的—_—应该是毁在16楼手上的
15楼感兴趣就去申请,向来我通过的概率都是蛮高的
回复

使用道具 举报

发表于 2007-11-30 21:14 | 显示全部楼层
路过算了
回复

使用道具 举报

发表于 2007-11-30 21:20 | 显示全部楼层
没眼看了
回复

使用道具 举报

发表于 2007-12-1 09:38 | 显示全部楼层
ls两位临时演员,活还是要干的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-5-14 17:47

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表