c# 将数据类型 varchar 转换为 bigint 时出错

(company.id='水蜜桃' or company.name like '%水蜜桃%')
如上想做到查询 company.id 是输入的值 或者满足 company.name 包含输入的值,该怎么写?

(company.id='水蜜桃' or company.name like '%水蜜桃%')
改为:
(cast(company.id as varchar)='水蜜桃' or company.name like '%水蜜桃%')
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-15
不要这样做,在拼接sql时做个判断
long tmp;
string input = "水蜜桃";
if(long.TryParse(input, out tmp)){
sql += string.Format("(company.id={0} or company.name like '%{0}%')", tmp);
}else{
sql += "company.name like '%" + input.Replace("'", "''") + "%'";
}
第2个回答  2011-07-15
告诉你个简单实用的方法,你学C#的应该肯定有装VS的,在VS里连接数据库可以生成sql语句的。你可以试试非常好用,点几下鼠标就OK。
第3个回答  2011-07-16
检查一下你的字段里是否含有不可转换的文本数字,比如说中文全角数字!你可以在输入那里做判断或对键盘输入做控制或检查,以避免输入全角字符。
或者里面包含空格,这也是不可转换的,可以trim掉。
再就是字段类型是bigint,但赋的值是文本串,比如 '123' 不等于123。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网