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

c# ACCESS数据库查询问题
数据库中有一列值,列默认声明为文本型,但其实列的值都是数字型的。我现在想写sql语句判断列值大于5,小于100,怎么写啊?不知道怎么处理,会出现类型问题。

------解决方案--------------------
sql 条件
CInt(你那列) > 5 and CInt(你那列) < 10
------解决方案--------------------
接1楼,换这个
CLng(你那列) > 5 and CLng(你那列) < 10
------解决方案--------------------
access有 Cint
sqlserver 有 cast ... as int
------解决方案--------------------
探讨
引用:
access有 Cint
sqlserver 有 cast ... as int

不分字符型和数字型吗

------解决方案--------------------
探讨
引用:
CLng() 这个函数的参数可以输入列名,然后执行 sql 语句时就把这列转换成 数值类型 处理。


C# code

mySelect = string.Format(@"SELECT * FROM Sheet1 WHERE CLng(cloud_height) > 5 and CLng(cloud_height) < 10");


这么写吗?不能执……

------解决方案--------------------
探讨
引用:


ACCESS数据库中cloud_height列是文本型的,值如下:1、20、5、10、30...都是数字类的。
现想查找cloud_height数值在5-10之间的。代码如下

C# code

Connection();//调用数据库连接函数
mySelect = string.Form……

------解决方案--------------------
如果那列为null的不要,就这样
C# code
mySelect = string.Format(@"SELECT * FROM Sheet1 WHERE CLng(IIf(IsNull(cloud_height),'-1',cloud_height)) > 5 and CLng(IIf(IsNull(cloud_height),'-1',cloud_height)) < 10)");

------解决方案--------------------
C# code
SELECT * FROM Sheet1 WHERE CLng(IIf(IsNull(cloud_height),'-1',cloud_height)) > 5 and CLng(IIf(IsNull(cloud_height),'-1',cloud_height)) < 10)");[