一个小小问题!ID的类型到底是什么?为什么不能够进行加、减

3573745 2005-04-21 04:57:22
目前牵系到一个小问题就是 我们平时使用最多的
news.asp?id=2

id1=request("id") '此时ID1的类型是什么?
当我进行ID1=ID1+50
之后在进行 select * from table whwere id="+ id1 +"的时候就报错了
反正就是
ID1=request("id")之后就不能够对ID1进行任何变动。一旦进行加减或者其他类型变化均出错。
搞不懂!

...全文
245 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyonet 2005-04-22
  • 打赏
  • 举报
回复
sqlstr="select * from table whwere id="&id1
mikespook 2005-04-22
  • 打赏
  • 举报
回复
1.不论你的ID是什么类型,在Request后一定是String类型。
2.要区分数据库字段类型和脚本变量类型。
3.如果你的字段类型是文本类型,那么在生成SELECT语句的时候要加单引号。
4.使用转换函数对字符串向数字转换时,字符串的内容应该为合理的数字,并且不可超出范围,如果数字很大,需要使用CLng转换。
5.IStringList是Request内建对象的接口类型,对于楼住这个问题,还是不要考虑这个的好,越搞越复杂,还解决不了问题。
6.这点也是最重要的,楼主既然有两年的ASP编写经验,应该知道,错误信息对于解决错误的重要性。而楼主却从未给出过。
3573745 2005-04-22
  • 打赏
  • 举报
回复
谢谢上面的各位!
ASP呢我也写了 2年多了.
至于:1、select * from table whwere id="+ id1 +" 这个明显有问题,结尾多了个引号
这样的错误不好意思咯.肯定是我写这里的是不小心的.
2.
Dim ID1
ID1 = CInt(Request("ID"))
ID1 = ID1 + 50

进行这样的话
SQL语句马上报错.反正是ID 不能够进行任何类型定义或者变换.有空你们试试咯.
我继续等候。可能这个问题不好解决.

其实问题就是我一个朋友他说他要他的东西不被人盗用.然后他的外面连接 参数ID是加了某一个数字的.然后这个数字是变换的.然后接受的时候在减去这变量在 索检数据库.
yb2008 2005-04-22
  • 打赏
  • 举报
回复
应这样写才对:
sqlstr="select * from table whwere id="&id1
webassassin 2005-04-22
  • 打赏
  • 举报
回复
不用说,是字符串
rickylyu 2005-04-22
  • 打赏
  • 举报
回复
id 要先formatnumber
3573745 2005-04-22
  • 打赏
  • 举报
回复
因为他就是无法显示
没有任何错误信息

HTTP 500 - 内部服务器错误
Internet Explorer

所以我也给不了多少东西了!

其实问题就是我一个朋友他说他要他的东西不被人盗用.然后他的外面连接 参数ID是实际ID加了某一个数字的.然后接收的时候在减去这变量再进行索检数据库.
他也不可能超出 INT 的范围
Hozaka 2005-04-21
  • 打赏
  • 举报
回复
分析一下你的问题

1、select * from table whwere id="+ id1 +" 这个明显有问题,结尾多了个引号

SQL = "SELECT * FROM Table WHERE id= " & ID1 这样就可以了
oRS.Open SQL, oConn, 1, 3

2、VBScript 里面没有 Dim ID1 As Int 这样的声明方式,原因是 VBScript 是弱类型的语言

Dim ID1
ID1 = CInt(Request("ID"))
ID1 = ID1 + 50
3573745 2005-04-21
  • 打赏
  • 举报
回复
http://www.nb321.com/asppost5/web25089.htm
这里说了
IStringList就表示它是一个字符串
shuangren 2005-04-21
  • 打赏
  • 举报
回复
我们一直说ASP只有一种数据类型,"variant ",可是现在得到的这个IStringList是什么呀?
3573745 2005-04-21
  • 打赏
  • 举报
回复
接上面的!方法
str = TypeName(request.querystring("id"))
response.write(str)

最后我得到的是这样的、IStringList
好像我们以前没有见过这样的类型啊
不过既然得到了它的类型。我就试试另外一种方法看看
3573745 2005-04-21
  • 打赏
  • 举报
回复
textid=request.QueryString("id")
filecontent1=cint(filecontent1)
textid=textid-filecontent1

这是我前面的代码。他照样报错。所有说 king2410(什么都不懂) 说的应该不怎么对

我在试试 楼上的看看。
shuangren 2005-04-21
  • 打赏
  • 举报
回复
str = TypeName(request.querystring("id"))
response.write(str)

显示类型是IStringList,不知道是什么类型?
3573745 2005-04-21
  • 打赏
  • 举报
回复
不管我使用 dim id1 as int
dim id1 as long
他都报错!至于说ID 属字符型的我就不怎么相信了。因为假如我们对ID没有进行任何处理。然后通过他来索检数据库的时候我们使用的是ID="+ID+" 而不是 ID='"+ID+"'
至于 newhandtoo(停留卡) 说的。呵呵。手误。你总不至于怀疑是我些错了WHERE 而错误吧!

好了
继续
king2410 2005-04-21
  • 打赏
  • 举报
回复
ID1是字符型的
所以
ID1=ID1+50
改为
ID1=CInt(ID1)+50
king2410 2005-04-21
  • 打赏
  • 举报
回复
select * from table whwere id="+ id1 +"
改为
select * from table where id="& id1
hbhbhbhbhb1021 2005-04-21
  • 打赏
  • 举报
回复
cint(id)
newhandtoo 2005-04-21
  • 打赏
  • 举报
回复
select * from table whwere id="+ id1 ======>>>>是 where 不是 whwere

理论上不会出现你所说的问题
shuangren 2005-04-21
  • 打赏
  • 举报
回复
request("id")后应该是字符型,要先转成整型才能数学运算
3573745 2005-04-21
  • 打赏
  • 举报
回复
如上!

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧