C# C sql命令无法搜索总成本

C# C sql命令无法搜索总成本,c#,mysql,exception,sum,between,C#,Mysql,Exception,Sum,Between,我正在设计一个表格,在列表框上显示总成本。我发现 尝试运行此命令时出错 我的目的是显示课程ID、学生人数和总成本列操作成本和列材料费用之和 我想搜索两个值之间的TotalCost。例如,price1文本框和price2文本框的值搜索700到1000之间的所有TotalCost 但在运行命令后,消息框上会显示一个错误 错误消息是关于 ErrorSystem.Date.OleDB.OLEDBEExceptionError0x80040E14选择查询运算符 sumoperatingCost+mater

我正在设计一个表格,在列表框上显示总成本。我发现 尝试运行此命令时出错

我的目的是显示课程ID、学生人数和总成本列操作成本和列材料费用之和

我想搜索两个值之间的TotalCost。例如,price1文本框和price2文本框的值搜索700到1000之间的所有TotalCost

但在运行命令后,消息框上会显示一个错误

错误消息是关于 ErrorSystem.Date.OleDB.OLEDBEExceptionError0x80040E14选择查询运算符
sumoperatingCost+materialFee>='700'和d您的SQL上存在错误。正确使用:

having sum(operatingCost + materialFee) between x and y

资料来源:


您的SQL上有一个错误。正确使用:

having sum(operatingCost + materialFee) between x and y

资料来源:

非上市


不带引号的

记住,对于每个和条件,这是一个新条件。所以,您需要使用您的条件再次定义该列

例如:
从[产品]中选择*,其中价格>='2',价格记住,对于每个和条件,这是一个新条件。所以,您需要使用您的条件再次定义该列

例如:
从[产品]中选择*,其中价格>='2',价格不需要单引号。你确定你不想用WHERE代替have吗?还学习了使用between而不是>=并且我解决了您不需要单引号的问题。你确定你不想用WHERE代替have吗?另外,我还学习了如何使用between而不是>=并解决了问题tyI将其更改为between格式,但出现了一个新错误错误错误消息为OLEDBEException 0x80040e07:标准表达式中的数据类型不匹配将参数price1和price2转换为运营成本/材料的相同数据类型请参见我希望它是十进制。结果:[……]在CONVERTx、小数10,2和CONVERTy、小数10,2之间,我将其更改为介于格式之间,但出现新错误错误错误消息为OLEDBEException 0x80040e07:标准表达式中的数据类型不匹配将参数price1和price2转换为操作成本/材料的相同数据类型请注意,我希望它是十进制。结果:[……]在CONVERTx,小数点10,2和CONVERTy,小数点10,2之间,它帮助我解决了另一个错误0x80040E07谢谢你这么多帮助我解决了另一个错误0x80040E07非常感谢
having sum(operatingCost + materialFee) >= x and sum(operatingCost + materialFee) <= y
  "... having sum(operatingCost + materialFee) between " + price1.Text + " and " + price2.Text, connection);