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

Posted

技术标签:

【中文标题】错误:条件表达式中的数据类型不匹配【英文标题】:Error: Data type mismatch in criteria expression 【发布时间】:2016-01-23 23:08:11 【问题描述】:

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

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

我的问题:我希望能够搜索特定成本范围之间的航班。

但是,在执行查询并尝试之后,它给出了错误:

附加信息:条件表达式中的数据类型不匹配。

在我的数据库中,成本是kost,它只是一个整数(例如,240)。

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

【问题讨论】:

请将代码以文本形式放入您的帖子中。您不能指望人们重新输入以找出错误并帮助您。谢谢。 【参考方案1】:

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

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

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

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

在您的上下文(MS-Access,使用整数)中,不需要考虑 Sql 注入,但使用参数化查询开始是一个很好的做法。

【讨论】:

嘿,现在我不再收到任何错误,这很好。但是,当我按下按钮时似乎什么也没发生,我真的不知道出了什么问题.. 呃哦,那是因为BETWEEN的语法错误,我来修正答案

以上是关于错误:条件表达式中的数据类型不匹配的主要内容,如果未能解决你的问题,请参考以下文章

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

ms 访问 2007 更新错误运行时错误 3464,条件表达式中的数据类型不匹配

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

尝试插入 Access 数据库时,条件表达式中的数据类型不匹配错误

条件表达式中的 SQL 数据类型不匹配

条件表达式中的数据类型不匹配 (Access DB)