System.Data.OleDb.OleDbException:“没有为一个或多个必需参数给出值。”在 da.Fill(dt)

问题描述 投票:0回答:1

我正在 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
中显示它 就像这张照片一样

enter image description here

c# sql datagridview ado.net oledb
1个回答
1
投票

会说

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
© www.soinside.com 2019 - 2024. All rights reserved.