错误:条件表达式中的数据类型不匹配
Posted
技术标签:
【中文标题】错误:条件表达式中的数据类型不匹配【英文标题】:Error: Data type mismatch in criteria expression 【发布时间】:2016-01-23 23:08:11 【问题描述】:我已经使用链接到 Access DB(用于学校)的 C# 制作了一个关于航班的程序。 但是,在做了所有的基础之后,我想获得一些额外的分数。
我的数据库包含两个表:reizigers
(乘客)和vluchten
(航班)。应正确定义所有类和变量。
我的问题:我希望能够搜索特定成本范围之间的航班。
但是,在执行查询并尝试之后,它给出了错误:
附加信息:条件表达式中的数据类型不匹配。
在我的数据库中,成本是kost
,它只是一个整数(例如,240)。
有人知道它可能是什么吗?
【问题讨论】:
请将代码以文本形式放入您的帖子中。您不能指望人们重新输入以找出错误并帮助您。谢谢。 【参考方案1】:KistMin
和 KostMax
是两个整数,我想你的 WHERE 子句中使用的数据表字段 Kost
也是整数类型。
但是您的查询将两个变量括在单引号之间,这会将它们转换为字符串。数据库不喜欢将包含数值的整数字段与文本(如果该文本由数字组成)进行比较,并抱怨提到的错误。
一个简单的修复方法是删除您在 sql where 条件中放置的两个值周围的引号并修复 syntax of the BETWEEN predicate。 (不确定该语法实际上产生了什么,可能是针对 Kost 字段评估的布尔结果,而不是您所期望的)
".... WHERE Kost BETWEEN " + KostMin + " AND " + KostMax;
在您的上下文(MS-Access,使用整数)中,不需要考虑 Sql 注入,但使用参数化查询开始是一个很好的做法。
【讨论】:
嘿,现在我不再收到任何错误,这很好。但是,当我按下按钮时似乎什么也没发生,我真的不知道出了什么问题.. 呃哦,那是因为BETWEEN的语法错误,我来修正答案以上是关于错误:条件表达式中的数据类型不匹配的主要内容,如果未能解决你的问题,请参考以下文章
ms 访问 2007 更新错误运行时错误 3464,条件表达式中的数据类型不匹配