我制作了一个关于使用链接到Access DB(学校)的C#的航班程序 但是,在完成所有基础知识后,我想得到一些额外的分数。
我的数据库由两个表组成:reizigers
(乘客)和vluchten
(航班)。应正确定义所有类和变量。
我的问题:我希望能搜索 某些费用范围之间的航班。
然而,在执行查询并因此尝试之后,它会给出错误:
其他信息:标准表达式中的数据类型不匹配。
在我的数据库中,费用为kost
,而且它只是一个整数(例如240)。
有人知道它可能是什么吗?
答案 0 :(得分:0)
KistMin
和KostMax
是两个整数,我想在WHERE子句中使用的数据表字段Kost
也是整数类型。
但是你的查询将两个变量括在单引号之间,并将它们转换为字符串。数据库不喜欢将包含数值的整数字段与文本进行比较(如果此文本由数字组成),并且抱怨上述错误。
一个简单的解决方法是删除放在sql中的两个值的引号,其中包含条件并修复syntax of the BETWEEN predicate。 (不确定实际上是什么语法产生的,可能是针对Kost字段评估的布尔结果,而不是你期望的结果)
".... WHERE Kost BETWEEN " + KostMin + " AND " + KostMax;
在您的上下文(MS-Access,使用整数)中,不关心Sql Injection,但是使用参数化查询是一个好习惯。