ms access "LIKE" ms access 中的运算符在 vb.net 中不起作用

ms access "LIKE" operator in ms access does not work in vb.net

我希望有人能阐明这种奇怪的行为。 我有一个非常简单的 sql 语句:

"SELECT TOP 1 PartRefID FROM Parts WHERE PartDescription LIKE '*Backshell*' AND ParentID = 2097"

执行标量。 当我在访问查询编辑器中输入它时,它工作正常并且 returns 预期值。 但是,当我从某些 vb.net 代码中 运行 它时,它始终 returns 为零。 谁能告诉我为什么会这样? 谢谢

使用 .net 时,您必须使用 % 符号 - 它更像是一个 ANSI 标准,并且它也适用于 jet/ace(访问)数据引擎。

因此,在编写 .net 代码而不是 VBA 时,您要使用 % 作为通配符,而不是 *。事实上,即使在 Access VBA 中,如果您要使用 ADO(相对于更常见和推荐的 DAO - 那么即使在 VBA + ADO 中,您也必须使用 % 代替 *) .

所以实际上大多数 sql 语法都使用 %。对于ADO,还是现在叫什么ado.net?然后要用%。

但是,内部访问?您可以打开 ANSI 兼容性 - 但它会使现有的访问应用程序变得一团糟 - 所以我不建议这样做(启用 Access ANSI sql 兼容模式)。

对于 Access 之外的“大多数”软件,您完全可以假设 - 即使在访问 Access 数据库时,您也使用 % 作为通配符。这里唯一的例外是直接使用 DAO 作为参考库,我强烈建议您不要这样做。

所以请尝试使用 % - 应该都能找到所有内容。

尝试替换*

"SELECT TOP 1 PartRefID FROM Parts WHERE PartDescription LIKE '%Backshell%' AND ParentID = 2097"