错误:条件表达式中的数据类型不匹配

时间:2016-01-23 23:08:12

标签: c# ms-access between unhandled-exception mismatch

我制作了一个关于使用链接到Access DB(学校)的C#的航班程序 但是,在完成所有基础知识后,我想得到一些额外的分数。

我的数据库由两个表组成:reizigers(乘客)和vluchten(航班)。应正确定义所有类和变量。

我的问题:我希望能搜索 某些费用范围之间的航班。

然而,在执行查询并因此尝试之后,它会给出错误:

  

其他信息:标准表达式中的数据类型不匹配。

在我的数据库中,费用为kost,而且它只是一个整数(例如240)。

有人知道它可能是什么吗?

repository wpf window, entry

1 个答案:

答案 0 :(得分:0)

KistMinKostMax是两个整数,我想在WHERE子句中使用的数据表字段Kost也是整数类型。

但是你的查询将两个变量括在单引号之间,并将它们转换为字符串。数据库不喜欢将包含数值的整数字段与文本进行比较(如果此文本由数字组成),并且抱怨上述错误。

一个简单的解决方法是删除放在sql中的两个值的引号,其中包含条件并修复syntax of the BETWEEN predicate。 (不确定实际上是什么语法产生的,可能是针对Kost字段评估的布尔结果,而不是你期望的结果)

".... WHERE Kost BETWEEN " + KostMin + " AND " + KostMax;

在您的上下文(MS-Access,使用整数)中,不关心Sql Injection,但是使用参数化查询是一个好习惯。