【问题标题】:iam getting this error in my c# application cannot find column2我在我的 c# 应用程序中遇到此错误找不到 column2
【发布时间】:2020-10-31 07:39:42
【问题描述】:

您好,伙计们收到此错误“找不到 column2”我想将两个查询合二为一,以便在数据库中插入数据一切都很完美,但我不知道为什么会出现这种类型的错误,我不知道如何要解决它,请帮助我,谢谢

Here is my code:

    string sqlCust21 = "SELECT Name,sum(CAST(ubl As int)) FROM payment WHERE dates <= '" + dateTimePicker1.Text + "' Group By union SELECT Name,sum(CAST(ubl As int)) FROM payment WHERE dates > '" + dateTimePicker2.Text + "' Group By Name";
                DataAccess.ExecuteSQL(sqlCust21);
                DataTable dtCust21 = DataAccess.GetDataTable(sqlCust21);
                MessageBox.Show(dtCust21.Rows[0][2].ToString());

【问题讨论】:

  • 您在第一次查询中错过了 GROUP BY 之后的列名
  • 谢谢,但这不是我仍然收到此类错误的原因,请参阅imgur.com/GgQwo76
  • 请你修改我的代码如何解决这个错误谢谢
  • 我建议您在查询中考虑使用参数,这有助于防止注入。

标签: c# sql database join error-handling


【解决方案1】:

DataRowCollections 基于 0。 试试这个

MessageBox.Show(dtCust21.Rows[0][1].ToString());

【讨论】:

    【解决方案2】:

    GROUP BY 后面缺少列名。

    string sqlCust21 = "SELECT Name,sum(CAST(ubl As int)) FROM payment WHERE dates <= '" + dateTimePicker1.Text + "' 
    Group By name  --<-- this
    union SELECT Name,sum(CAST(ubl As int)) FROM payment WHERE dates > '" + dateTimePicker2.Text + "' Group By Name";
    

    【讨论】:

    • 您的语法错误已通过使用此解决方案解决,现在您收到另一个错误,这是由于索引,这意味着此解决方案解决了您的问题中报告的查询错误
    猜你喜欢
    • 2021-07-01
    • 2021-04-11
    • 2023-01-11
    • 1970-01-01
    • 2022-11-24
    • 2023-03-20
    • 2018-10-01
    • 2021-03-14
    • 1970-01-01
    相关资源
    最近更新 更多