为什么在以编程方式运行查询时Access会返回不同的ResultSet?

时间:2009-08-12 09:29:04

标签: sql ms-access

我在MS Access中编写了一个查询。这是一个简化版本:

SELECT IIf([category] LIKE "*abc*","DEF",category) AS category
, Month
, Sum(qty) AS [qty] 
FROM [tableX] 
GROUP BY category, Month 

查询的目的是对不同月份的不同类别的产品数量求和。我想将像abc这样的类别聚合到一个名为ABC的类别中。当我在Access中查看查询时,类别被正确聚合,但如果我从C#代码中选择查询,则不会进行聚合。
任何想法为什么会发生这种情况?

2 个答案:

答案 0 :(得分:3)

使用Access数据库引擎ANSI-92 Query Mode时的通配符是%,而不是*。

Access数据库引擎的OLE DB提供程序(例如,通过ADO classic,ADO.NET等)始终使用ANSI-92查询模式。

Access UI默认使用ANSI-89查询模式,但可以放入ANSI-92查询模式。

DAO始终使用ANSI-89查询模式。

使用(不支持的)ALIKE关键字始终使用'%'通配符,无论查询模式如何。

答案 1 :(得分:0)

如果它在Access中工作,请尝试在Access中将其设为查询,并在您的APP中使用它。