我正在 C# Windows 窗体中执行此操作,它在 Access 数据库中按组对行进行计数,并在
dataGridview
中显示该组的总数。但是当我运行它时,我收到一条消息:
System.Data.OleDb.OleDbException:“没有为一个或多个必需参数给出值。”在 da.Fill(dt);
这是我的代码
BrandName
是我表中的字段名称tblmain
。
md = new OleDbCommand("SELECT BrandName, COUNT(BrandName) AS Quantity FROM tblmain GROUP BY BrandName HAVING (COUNT(BrandName)>= 1) ORDER BY Quantity DESC", con);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
dgvQuantity.DataSource = dt;
或者任何人都可以推荐一种替代方法来获取 Access 数据库中的行数并在
datagridview
中显示它
就像这张照片一样
会说
QUANTITY
中的 ORDER BY
被视为表中的一列,而该列不存在。但是,它是 COUNT(BrandName)
的列别名,您需要根据值执行排序。
您应该在
COUNT(BrandName)
中使用 ORDER BY
(聚合函数)。
SELECT BrandName, COUNT(BrandName) AS Quantity
FROM tblmain
GROUP BY BrandName
HAVING COUNT(BrandName)>= 1
ORDER BY COUNT(BrandName) DESC