gpt4 book ai didi

c# - 查询在 phpmyadmin 中有效,但在 c# 中无效

转载 作者:行者123 更新时间:2023-11-29 02:26:48 25 4
gpt4 key购买 nike

我有这个查询,它给出了我在 phpmydmin 中使用它的内容,但在 c# 中它给出了此 picture 中显示的错误

SELECT SUM(IF(status=0,montant,0)) AS a_tot, 
SUM(IF(status=0, montant * (tvaval/100),0)) AS a_tva,
SUM(IF(status= 1, montant,0)) AS v_tot,
SUM(IF(status=1, montant * (tvaval/100),0)) AS v_tva
FROM StockData
UNION ALL
SELECT SUM(at.prix*at.pax) AS at_tot,
SUM(at.prix) AS at_prix,SUM(at.pax) AS at_pax,
SUM(at.vente) AS at_vente FROM Atelier AS at

可能是什么原因?

使用 c# 2008 MySql 5.0

最佳答案

你正在做一个 UNION ALL

at_tot 结果被附加到 a_tot
at_prix 结果被附加到 a_tva
at_pax 结果被附加到 v_tot
at_vente 结果被附加到 v_tva

SQL UNION ALL查询允许您组合 2 个或更多 SELECT 语句的结果集。它返回查询中的所有行(即使该行存在于多个 SELECT 语句中。)。所以附加的是行,而不是列。

编辑:

现在根据您的评论,您编写的代码就像将要返回 8 列一样,但您只得到 4 列,2 行。

这可行,但不建议为每一行返回不同的数据。

var i = 0;
while (reader.Read())
{
if(i == 0){
MyArray[0] = reader["a_tot"].ToString();
MyArray[1] = reader["a_tva"].ToString();
MyArray[2] = reader["v_tot"].ToString();
MyArray[3] = reader["v_tva"].ToString();
i++;
}
else{
MyArray[0] = reader["at_tot"].ToString();
MyArray[1] = reader["at_prix"].ToString();
MyArray[2] = reader["at_pax"].ToString();
MyArray[3] = reader["at_vente"].ToString();
}
}

关于c# - 查询在 phpmyadmin 中有效,但在 c# 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20317780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com