我试图在图表 (Winforms/C#) 中显示一列的总量与时间单位(在本例中为月)的关系 - 因此它将是数量与时间的关系图。问题是用户想要自由说——选择 1 月和 6 月的总计并在单个图表中比较它们(因此 1 月的总计将表示为 6 月总计条形旁边的条形)。我已经在列表中捕获了选定的月份(另外,我在 for 上有图形控件),但我真正卡住的地方是构建 mysql 语句及其类似的东西
selectdataforGraph = "SELECT SUM(Amount_Net) AS Total FROM testingproject.incomeinformation WHERE date";
foreach (int month in selectedMonth) {
selectdataforGraph += "between '" + selected_year+ "-" + month +
"'-1 AND '" + selected_year + "-"+month+ "-31' AND";
}
我知道它缺少一些空格和一些引号问题 - 已经运行了查询并且我想了很多但我认为中间行不通,因为我不知道如何 AND
它的下一部分,如果用户选择 May,那么 August 将在 2007-5-01 和 2007-5-30 AND 2007-8-01 和 2007-8-30 之间???
最佳答案
编辑:MySQL 似乎不是您的数据库...
一定要使用参数化查询!然而......为了适应你所拥有的,所以你可以快速测试它......
我想我会使用 DATEPART 而不是 BETWEEN....
var selectdataforGraph = "SELECT SUM(Amount_Net) AS Total FROM testingproject.incomeinformation WHERE ";
var monthList = string.Join(",", selectedMonth);
selectdataforGraph += " YEAR(date) = " + selected_year;
selectdataforGraph += " AND MONTH(date) in (" + monthList + ")";
关于c# - 绘制非顺序数据 C# 和 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17729082/