| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 774 人关注过本帖
标题:请问ASP 中加了""的 1 和 不加引号的1 区别在哪里?
只看楼主 加入收藏
Philomena
Rank: 1
等 级:新手上路
帖 子:99
专家分:0
注 册:2006-8-23
收藏
 问题点数:0 回复次数:2 
请问ASP 中加了""的 1 和 不加引号的1 区别在哪里?

 这是一个跨页连接的接收页的代码

 大家看下我的代码
<%dim js
js="1"
if request("ID") <> "" then
js=request("ID")
end if
%>
<%dim connstr
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &Server.mappath("quanbuxinxi.mdb")
set conn=Server.CreateObject("ADODB.Connection")
conn.open connstr
%>
<br>
<%
sql="select * from people where id=" + js
set rs=Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,1
%>

<%if not rs.eof then
%>

后端代码省略
大家注意那个 1 如果我把的引号去掉 我打开这个页面 就会显示
Script error detected at line 22.
Source line: sql="select * from people where id=" + js
Description: 类型不匹配: '[string: "select * from people"]'

为什么呀?

我很奇怪,加了引号的 1 不是成了字符串了吗? 为什么 还能当数字用来查询数据,而不加引号的 1为什么反而不能当数字用来查询数据库? 哎 把我自己都搞糊涂了。。 谁能给我理一下凌乱的思绪啊

搜索更多相关主题的帖子: 引号 ASP 
2006-08-29 23:55
渚薰
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:1132
专家分:0
注 册:2006-8-6
收藏
得分:0 
vbscript是弱类型语言,但是在进行字符串的连接操作时,如果用+号,系统不会自动把数字类型转换成字符类型
"select * from people where id="是字符类型,而js=1是数字类型,所以"select * from people where id=" + js 出错,因为字符类型和数字类型不能相加,但是,字符串连接操作还可以用&号,此时系统会自动把数字类型转换成字符类型,即"select * from people where id="&js是不会出错的。但是,为了养成良好的编程习惯,建议在使用字符串连接是显式的用cstr()把数字型转换成字符串型,即"select * from people where id="&cstr(js)或"select * from people where id="+cstr(js),或者js直接式字符型

如果楼主不明白我以上有些术语,请参阅任何一门计算机语言(比如C)里关于“数据类型”那一章的相关知识

个人ajax技术专题站: " target="_blank">http://www. 我不会闲你烦,只会闲你不够烦!
2006-08-30 00:08
Philomena
Rank: 1
等 级:新手上路
帖 子:99
专家分:0
注 册:2006-8-23
收藏
得分:0 
真是高人啊,讲得很是透彻 呵呵 谢谢了哦

2006-08-30 00:20
快速回复:请问ASP 中加了""的 1 和 不加引号的1 区别在哪里?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033246 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved