日期:2014-05-18  浏览次数:20537 次

请教数据库SQL语句小问题
string str = "Select * From usera where 1=1";
  if (qy != null && qy.Length != 0)
  str += " and uname='" + qy + "'";
  str += " order by add_date desc,uid desc";

数据库中uname字段为数字字节类型,我这样写总是报错,将uname改为整数也不行,

改成以下就行,
string str = "Select * From usera where 1=1";
  if (qy != null && qy.Length != 0)
  str += " and int(uname)='" + qy + "'";
  str += " order by add_date desc,uid desc";

请教为何



------解决方案--------------------
'" + qy + "'"; 
问题就出在这里 如果是整数的话 就不要最外面的''了 ''表示字符串 是varchar型
------解决方案--------------------
数据库中的数据类型转化
用convert
或者 
cast
你多看看 sql语句 基础
------解决方案--------------------
string str = "Select * From usera where 1=1"; 
if (qy != null && qy.Length != 0) 
str += " and unam=" + qy + ""; 
str += " order by add_date desc,uid desc"; 
刚刚没看清楚
以为你要转化
如果是数字的
直接拼接上去就可以
不要加上单引号

也不要对字段做数据类型转化