【问题标题】:Is this SUM() query correct?这个 SUM() 查询是否正确?
【发布时间】:2011-08-21 16:00:19
【问题描述】:
   string sql2 = "SELECT SUM(fyringsolje) FROM Informasjon WHERE fyringsolje='Kull: 2,42 kg';";
         SqlCommand myCommand2 = new SqlCommand(sql2, conn);
         kullTotaltLabel.Text = "" + (int)myCommand2.ExecuteScalar();

我没有看到标签的文字发生变化,恐怕查询不正确。我要确保查询是正确的!

【问题讨论】:

  • 你在SQ​​L环境下测试过吗?这些通常会告诉您查询是否有问题。
  • 您是否尝试在 sql 控制台中运行它?检查它在那里返回的值。我也不知道你的桌子长什么样,所以我真的帮不了你。也许您的 where 子句不准确?
  • 您是否可能想要 COUNT 而不是 SUM?

标签: c# .net asp.net sql visual-studio


【解决方案1】:

这不可能。在同一个选择语句中,您将 fyringsolje 字段与 Text 进行比较,以便建议该值是一个文本字段并且您不能对其应用 sum

【讨论】:

    【解决方案2】:

    我怀疑您是否希望在查询结束时使用 ;...但只是没有看到标签更改表明如果出现问题,您正在吞下任何抛出的异常。

    在您修复查询之前,请先修复设计,以便在发生错误时,您可以了解它们 - 否则您将永远无法确定发生了什么。

    我还将最后一行更改为:

    kullTotaltLabel.Text = myCommand2.ExecuteScalar().ToString();
    

    【讨论】:

    • 你在正确的地方,try catch 块不允许我看到我的错误。我正在调用一个字符串而不是一个 int。我很困惑,因为我不懂挪威语,所以我不知道这个专栏是干什么用的。谢谢!
    【解决方案3】:

    我怀疑字母数字列上的 SUM() 可能是罪魁祸首。我假设它是文本列,因为选择的条件。

    在调试模式下运行,在第二行设置断点并检查 sql 变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多