Error: Data type mismatch in criteria expression
Error: Data type mismatch in criteria expression
我已经使用链接到 Access 数据库(用于学校)的 C# 制作了一个关于航班的程序。
不过基础打完了还想加分
我的数据库由两个表组成:reizigers
(乘客)和vluchten
(航班)。所有 类 和变量都应正确定义。
我的问题:我希望能够搜索航班之间某些成本范围。
然而,在执行查询并尝试之后,它给出了错误:
Additional information: Data type mismatch in criteria expression.
在我的数据库中,成本是 kost
,而且它只是一个整数(例如 240)。
有人知道它可能是什么吗?
KistMin
和 KostMax
是两个整数,我想 WHERE 子句中使用的数据表字段 Kost
也是整数类型。
但是您的查询将两个变量括在单引号之间,这会将它们转换为字符串。数据库不喜欢将包含数值的整数字段与文本进行比较(如果该文本由数字组成)并且会抱怨提到的错误。
一个简单的修复是删除您在 sql where 条件中输入的两个值周围的引号并修复 syntax of the BETWEEN predicate。 (不确定该语法实际产生了什么,可能是针对 Kost 字段计算的布尔结果,而不是您所期望的)
".... WHERE Kost BETWEEN " + KostMin + " AND " + KostMax;
在您的上下文中(MS-Access,使用整数)无需担心 Sql 注入,但开始使用参数化查询是一个很好的做法。
我已经使用链接到 Access 数据库(用于学校)的 C# 制作了一个关于航班的程序。
不过基础打完了还想加分
我的数据库由两个表组成:reizigers
(乘客)和vluchten
(航班)。所有 类 和变量都应正确定义。
我的问题:我希望能够搜索航班之间某些成本范围。
然而,在执行查询并尝试之后,它给出了错误:
Additional information: Data type mismatch in criteria expression.
在我的数据库中,成本是 kost
,而且它只是一个整数(例如 240)。
有人知道它可能是什么吗?
KistMin
和 KostMax
是两个整数,我想 WHERE 子句中使用的数据表字段 Kost
也是整数类型。
但是您的查询将两个变量括在单引号之间,这会将它们转换为字符串。数据库不喜欢将包含数值的整数字段与文本进行比较(如果该文本由数字组成)并且会抱怨提到的错误。
一个简单的修复是删除您在 sql where 条件中输入的两个值周围的引号并修复 syntax of the BETWEEN predicate。 (不确定该语法实际产生了什么,可能是针对 Kost 字段计算的布尔结果,而不是您所期望的)
".... WHERE Kost BETWEEN " + KostMin + " AND " + KostMax;
在您的上下文中(MS-Access,使用整数)无需担心 Sql 注入,但开始使用参数化查询是一个很好的做法。