ASP世界
关于ASP中的单引号、双引号、连字符&
作者:佚名 转自:Internet
自学习ASP以来,经常被夹杂在ASP程序中的单引号、双引号、连字符&搞得一头雾水,为此专门用一篇文章的篇幅进行总结,不正确之处,请指出。
要点:
VB及VBScript中,标记字符串变量内容用双引号,用两个连续的双引号表示字符串中的双引号。如:
Response.Write "站点域名是:""wpedu.net""。"
SQL语法中,标记字符串变量内容用单引号,用两个连续的单引号表示字符串中的单引号。如:
"select no,'''Testing'''test from bable where no='000300'"
VB及VBScript编程时访问数据库最常用的语句:第一,选择查询(select),返回结果集;第二,动作查询(update、insert、delete等),无结果集。无论哪一种语句,经常需要根据用户的输入来构造符合SQL语法的字符串(加双引号)赋给一个变量,提交给连结对象或结果集对象来执行(open或execute方法)。
在ASP语句中,紧跟在单独的一个单引号后面的内容是注释。但如果单引号位于一对双引号内(即为字符串的一部分)时单引号为字符串的一部分,而不起注释作用。
如果标签或者内容中使用了引号,在ASP中要使用双引号,如:<FONT SIZE=""+2"">
(???值得商榷)
ASP中处在双引号中的可以是任意的字符、字符串,HTML代码:
<%response.write ("<b>要显示的文字</b>")%>
如果要使上句中的文字加上红色,则:
<%response.write("<font color=" & "#ff0000" & ">文字</font>")%>
或<% response.write("<font color=' #ff0000 '>文字</font>") %>
ASP中&号(或+号,避免数字形式时产生相加,少用),用来连接变量和HTML的内容信息,包括:字符串-字符串、字符串-变量、变量-变量等,如:
Response.Write Rs("Name") & ", "
exec="insert into table(name,tel,message)values('"+name+"',"+tel+",'"+message+"')"
exec="insert into table(name,tel,message)values('张三',123456,'消息内容')" //该句是用值代替上句的变量
定义一个变量mycolor,按照一般原则,变量放在response.write里面是不需要加双引号的,加上双引号(内含或内套的字符串用单引号)就表示是字符串,是已赋值的变量,而非没赋值的变量:
<%
mycolor="#ff0000"
response.write ("<font color='"&mycolor&" '>" & "文字" & "</font>")
%>
如果要输出的是变量,可以直接这样写:response.write(mycolor)
下句输出语句中前mycolor表示字符串,后mycolor表示变量:
<%
mycolor="#0000ff"
response.write ("<font color='"&mycolor&" '>" & mycolor & "</font>")
%>
HTML和ASP的混合使用:
<%mycolor="#0000ff"%>
<td><font color=<%=mycolor%>><%=mycolor%></td>
引号是成对出现的,引号里面的可以看成是字符串(&与&之间的是变量)。下面的request("username")变量作为一个整体必须是在引号外面的。SQL语句中不能有变量,必须是字符串;如果出现变量,要通过连接符再把变量组织到SQL语句中。
错误:"Select * From table where username=&request("username")"
正确:"Select * From table where username="&request("username")
遇到双引号里面需要再嵌套双引号时,里层双引号改成单引号:
"Select * From table where username = 'zhangshan'"
单引号同样是一个字符,用在SQL语句中,也要用""包括在里面:
"Select * From table where username = '" & zhangshan &"'"
sql = "select * from u_id where id='" & id &
"'"
综合例子:
exec="insert into table(name,tel,message)values('"&name&"',"&tel&",'"&message&"')"
或exec="insert into table(name,tel,message)values('"+name+"',"+tel+",'"+message+"')"
exec="insert into table(name,tel,message)values('张三',123456,'文字内容')"
拆分理解:
exec="insert into table(name,tel,message)values('"
exce=exce & name
exce=exce & "',"
exce=exce & tel
exce=exce & ",'"
exce=exce & message
exce=exce & "')"
|