已解决问题 - 浏览113次
下一个已解决问题关于asp语法
请问 下列语句什么区别吗? 第一种格式有点难理解;求助高手解答。 谢谢!!!
1.sql="select * from user where id ='"&request.form("name")&"'"
conn.execute sql
2.f_id=request.form("name")
sql="select * from user where id ="&f_id
conn.execute sql
如果加双引号是字符串;那为什么还要加单引号呢? 第二种为什么又不用??? 谢谢!!!
最佳答案 - 由提问者2008-07-31 14:24:48选出
你是理解的方法错了。
对于asp中的语句,字符串要用引号,变量不用引号。
比方说
dim a,b
a="我喜欢ASP"
b=a&"编程"
这样b的结果是 我喜欢ASP编程。
你上面的第一种格式,前面的"select * from user where id ='"就是用双引号引用了字符串select * from user where id ='。&request.form("name")&就是用&连接变量request.form("name")后面的"'"就是 用引用‘,这个单引号和前面select * from user where id ='的单引号是一组的,因为request.form("name")的返回值是 字符串,必须用引号。
第二中f_id的返回值必须是数字,才不用引号.
提问者对最佳答案的评价
xiexie !!!
其他回答(2)
-
asp是回答客户端页面请求的。
在asp文件中,请求通常可以使用Request对象来得到请求的值。如你的代码中的Request.Form("name"),表示的就是在请求页面是,有一个文本框、列表框、选择框等等名字叫name,页面要把这个框中的值当参数发送给asp文件,asp文件中就可以使用Request.Form("name")得到这个参数的值。
而这个参数的值,往往也用在数据库查询的关键字上。
如你的代码,可以看出数据库里有一张表,表中有一个字段名为id,要查询这个字段的值为参数name的值的记录。
格式就是:select 查询结果中要访问的字段 FROM 表或查询 WHERE 关键字字段=字段的值,这是最简单的sql查询语句了。在给“字段的值”时,就是用Request.Form("name")给的,前一种是直接给,后一种是间接给。
至于单引号的问题,如果这个字段是数字型的,不要加单引号;如果这个字段是字符串弄的,必须加单引号!你这两种形式里应该是有一种不能正常执行的。 -
你没有弄懂SQL语言!
在SQL里的查询器里:
select * from user where id ='1'
单引号是参数的意思!
如在ASP中写成:
sql="select * from user where id ='1'"
这是可以的,但前提条件是这行语句是静态的,不能改动,同时编译器也会报错;这不合符你的要求
想要动态地获取数据并写入数据库,如写成:
sql="select * from user where id ='&request.form("name")&'"
编译器会报错,这是因为"号里面不能存有'号,为了满足SQL的语句要求;采取了转义符方式获得'号; "'" 这种方式可以友好地获得一个'号.

any_thinks








