日期:2014-05-17  浏览次数:20570 次

请问sql查询语句中的单引号、双引号、加号是什么意思?
我用C#   asp.net写的


string   userName   =   this.tbxName.Text;//定义一个变量并赋值
(省略若干)
//下面是第一种写法,可以正确执行
SqlCommand   cmd   =   new   SqlCommand( "select   count(*)   from   userinfo   where   uName= ' "+userName+ " ' ",   conn);

//下面是第二种写法,提示列名无效
SqlCommand   cmd   =   new   SqlCommand( "select   count(*)   from   userinfo   where   uName= "+userName,   conn);

我一直都搞不懂什么时候应该用哪一种,请问大家有具体的详细一点的教程吗?

------解决方案--------------------
因为你数据库里的不是char 或者varchar型的啊 你的ID是用的int 或者是decimal型的嘛``
你数据库里写的时候不要加嘛````
select * from voteDetails where voteID = 12
是直接这样写数字的

select * from user where userName = '123 '

看看区别``
------解决方案--------------------
"select count(*) from userinfo where uName= "+userName
=================
在程序里这个只是一个查询字符串而已,,记住,只是一个单纯的字符串,要和查询分析器里的有差别的,而+号只是用来连接这些字符串的.
举个例子给你:
如果userName的值为 "aaa ",则这个字符串映射成的查询语句实际就是:
select count(*) from userinfo where uName=aaa
然后你把它写入查询分析器,结果会发现在uName=aaa附近有语法错误,为什么呢?因为你的uName在数据库中定义的是一个varchar型的,而对字符型进行条件查询的时候是要加 ' '号的:
select count(*) from userinfo where uName= 'aaa '
因此在后台写查询字符串的时候就必须这样写:
string sql = "select count(*) from userinfo where uName= ' "+userName+ " ' "
这样映射成的查询语句就是:
select count(*) from userinfo where uName= 'aaa ' 了.
然后查询菜不会出错