sql语句中需要将where条件中的单引号变为两个单引号即可,如下:
select * from zxmxxk_kpsq_tzym_view where 1=1 and zxmmc='CrystalDynamics_Avenger''sProject_Art_Env_Batch2'
jsp页面中,需要将包含单引号的变量进行替换:
String zxmmc = Util.null2String(request.getParameter("zxmmc"))//文本
String sqlWhere = " where 1=1 "
if(zxmmc.indexOf("'")!=-1){
zxmmc= zxmmc.replace("'","''")
}
if(!"".equals(zxmmc)){
sqlWhere += " and zxmmc='"+zxmmc+"'"
}
SQL语句中的单引号与双引号区别和应用1 连接字符&号:ASP中&号的主要作用是用来连接的,包括:字符串-字符串、字符串-变量、变量-变量等混合连接。
2 单引号':正如学习语文课一样,继续放在双引号中的引号可以采用单引号。
3 双引号"" :ASP中处在双引号中的可以是任意的字符、字符串,HTML代码。
例子:
v代表变量
V对于数字 例子:var1.asp
qSQL=“select * from 股票行情表 where 收盘价>”&V
V对于字符串 例子:var2.asp
qSQL=“select * from 股票行情表 where 股票代号=‘”&V&”’”
V对于日期时间 例子:var3.asp
qSQL=“select * from 买卖记录 where 买卖日期=#”&V&”#”
单引号与双引号的区别:
双引号里面的字段会经过编译器解释,然后再当作HTML代码输出;单引号里面的不需要解释,直接输出。也就是说双引号中的变量会被解析,单引号里的变量不会被解析。
查询语句中的字段如果是文本型就要用单引号,数字型(整型)的才不要单引号,简言之,一个SQL查询语句用双引号括起来,里面的SQL语句中的字符变量用单引号括起来。而Dreamweaver UltraDev 4软件中自动生成的语句默认都是数字型的,所以会出现错误号0x80040E10的提示。
首先要知道,引号是成对出现的.这个就和语文中学到的一样.引号里面的是一段字符串,我们把这段看成一个整体.引号外面的是变量,这个也看成一个整体,而变量也必须是在引号外面的,&是连接符,是用来连接两个整体的
有时候单引号括起来是字符,Sql中 单引号也做转义字符
双引号是字符串,char和string
……………………………………………………………………
在SQL语句 双引号,单引号连用怎么理解,???
StrSql="select * from usersheet where loginname=' "+Login1.UserName+" ' and userpass=' "+Login1.PassWord+" ' "
就谈下边的这个例子把
问题补充:' "+Login1.UserName+" '
这个里边的单双引号怎么解释 还有+号 !!
提问者: netswords - 助理 二级
最佳答案
loginname 指的就是一个变量名<与数据库里的字段匹配>,
而' "+Login1.UserName+" ' 就是你输入的值,
假如只有单引号,系统会认为变量就是Login1.UserName,
而这个值是固定的,然而我们需要的是一个变量,所以就得再加一个双引号,
至于 ‘+’ 就是连接字符串的意思、、
***************8上面的是网上的解释 ************
**************8下面是我的程序**********************
strSQL1 = "select * from design where "+rbtnField.SelectedValue+" like '%李大线%' "
strSQL2 = "select * from design where result like '%李大线%' "
strSQL1 显示的 结果 select * from design where result like '%李大线%'
strSQL1 显示的 结果 select * from design where result like '%李大线%'
上面这两句话这个时候完全相同 ,可以实现查询。
如果是下面的情况就不一样了~~~
strSQL1 = "select * from design where ' "+rbtnField.SelectedValue+" ' like '%李大线%' "
strSQL2 = "select * from design where result like '%李大线%' "
strSQL1 显示的 结果 select * from design where 'result' like '%李大线%'
strSQL1 显示的 结果 select * from design where result like '%李大线%'
SqlCommand mycomm = new SqlCommand("select * from design where "+rbtnField.SelectedValue+" like '%李大线%' ", conn) 这个时候可以完成模糊搜索。。
strSQL1 = " select * from design where "+rbtnField.SelectedValue+ " = ' "+Textkeyword.Text+ " ' "
strSQL 2= "select * from design where "+rbtnField.SelectedValue+ " = "+Textkeyword.Text+ " "
select * from design where kv = '35'
strSQL1 显示的 结果 select * from design where kv = '35'
strSQL1 显示的 结果select * from design where kv = 35
这个时候的strSQL1和strSQL2是等价的,都可以用于查询。。
看样子,至少我的例子中,单引号' '是没有任何作用的,只有麻烦,以后尽量不用
这个不是三引号,而是一个单引号,一个双引号,双引号是你这句代码中拼接字符串用的,因为你的userinfo.loginname是个变量,如果是个写死的字符串可以直接where
loginname='admin'
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)