主题:  蓝鲸:asp中如何运用单引号和双引号!

进军.net

职务:普通成员
等级:1
金币:0.0
发贴:105
#12005/3/30 13:52:55
引用:--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
rs.open "Select * From register where username='"& request("username")&"'",Conn,3,3

response.write "<h2>dddd<a href=""gform.htm"">ddd</a>ddd</h2>"
像上面的情况我经常会写成:
rs.open "Select * From register where username=&request("username")&",Conn,3,3

response.write "<h2>dddd<a href="gform.htm">ddd</a>ddd</h2>"

等很多类似的情况
所以有时候程序总因为标点符号用不好就会报错,因此担误了好多时间。请大家多指教!给我总结一个规律!谢谢



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#22005/3/30 16:13:45
其实很简单的东西,但是很多人不会用.我也想把这个说清楚,可惜很多时候越说越让人糊涂

首先要知道,引号是成对出现的.这个就和语文中学到的一样.引号里面的是一段字符串,我们把这段看成一个整体.引号外面的是变量,这个也看成一个整体,而变量也必须是在引号外面的,
&是连接符,是用来连接两个整体的

你的这个句子:
"Select * From register where username=&request("username")&"


Request("username")可以看成是一个变量,是不能写在引号里面的
这是第一个错误
改成:
"Select * From register where username="&request("username")


怎么来看这个句子呢?
就像上面说的,把各个部分看成一个整体
"Select * From register where username="是一个字符串,我们假设成A
request("username")是变量,我们假设为B
用连接符连接起来就是
A & B


那么我们来构造一个更复杂的语句:

"SELECT * FROM " & Table & " WHERE Name = '" & Name &"'"


其实就是:
"SELECT * FROM"
Table
" WHERE Name = '"
Name
"'"
五个部分用&连接了一下
可以注意其中字符串部分的引号,是首尾成对的
我们假设Table为"Users",Name为"yangjp"

上面的语句就等于:
"SELECT * FROM Users WHERE Name = 'yangjp'"


在这个SQL语句里面,因为yangjp也是字符串,所以有一个被引号包含了起来,而双引号不能再嵌套双引号,所以这里是单引号


完了,希望别说得你越来越糊涂了 :D :D



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#32005/3/30 19:16:27
缺缺说得很具体了。


非常大鱼

进军.net

职务:普通成员
等级:1
金币:0.0
发贴:105
#42005/3/31 15:13:15
引用缺缺:"SELECT * FROM " & Table & " WHERE Name = '" & Name &"'"

A是"SELECT * FROM"
B是TABLE
C是"WHERE NAME= ---为什么没有后引号???
D是???


'"&name&"'"中加单引号是因为name是字符型数据。末尾的双引号是与c成对的。但另外的双引号和&和起什么作用?

这样写可以吗?
"select * from"&table&"where name="'&name&'"

请指教!麻烦你分别说一下(详细点)!谢谢



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#52005/3/31 17:12:27
C 是 " WHERE Name = '"
D 是 Name
E 是 "'"


'"(1)&name&"(2)'"(3)

这句话里面有三个双引号
引号1是于C组的,和C组第一个引号构成一对
2和3一组



进军.net

职务:普通成员
等级:1
金币:0.0
发贴:105
#62005/3/31 19:57:45
引用缺缺:E 是 "'" ????这里的单引号为什么要写在双引号里?

其它的我全明白了就还有上边这一个。请再给讲讲吧!

即为什么不这样写呢?
sql="select * from" &table& "where name='"&name&'



进军.net

职务:普通成员
等级:1
金币:0.0
发贴:105
#72005/3/31 20:12:29
晕!我明白了,因为'也是一个字符,所以也要用""包括在里面!
真的太谢谢缺缺了!

我河北廊坊人
qq:81167664



进军.net

职务:普通成员
等级:1
金币:0.0
发贴:105
#82005/3/31 20:26:56
缺缺你指教一下,看我是不是真的明白了呀!


前提是name\pas都是字符型数据
sql="select * from" &table& "where name='"&name&"'"&"and pas='"&pas&"'"



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#92005/3/31 21:42:05
from where附近加上空格,否则构建的sql语句就不正确了
还有"'"&"and pas='"

可以直接写成
&"' and pas='"



进军.net

职务:普通成员
等级:1
金币:0.0
发贴:105
#102005/4/1 15:44:51
from where附近加上空格,否则构建的sql语句就不正确了


呵呵..这是马虎了

谢谢看来我还的多练习呀!



holin

职务:普通成员
等级:1
金币:0.0
发贴:35
#112005/4/4 23:47:56
嗯,偶也明白了



huxueteng

职务:普通成员
等级:1
金币:0.0
发贴:3
#122005/4/21 12:41:08
明白了'是要用在结果中的,所以^^^^



huxueteng

职务:普通成员
等级:1
金币:0.0
发贴:3
#132005/4/21 12:41:38
谢谢



古剑刀

职务:普通成员
等级:1
金币:0.0
发贴:41
#142005/4/21 13:28:26
楼上各位:真有闲心!这类问题只要多练习就有了,瞎忙活啥呀!