【问题标题】:LIKE Command Problem using OLEDBREADER and MS Access使用 OLEDBREADER 和 MS Access 的 LIKE 命令问题
【发布时间】:2010-07-07 09:09:08
【问题描述】:

这有点奇怪……

以下命令返回我在 Access 2003 的查询窗口中运行时所期望的结果:

SELECT * FROM Train WHERE [Days] LIKE '*3*'

但是,当我将它传递给我的 C# 代码以运行(返回 OleDbDataReader)时,我什么也得不到。我怀疑这与 LIKE 命令有关(当我删除它时,我得到行)。

有什么想法吗?

【问题讨论】:

    标签: c# ms-access oledbdatareader


    【解决方案1】:

    只是一个猜测,但试试这个:

    SELECT * FROM Train WHERE [Days] LIKE '%3%'
    

    【讨论】:

    • 这是正确的:通过 Access 的查询生成器使用的 sql 方言和 oledb 连接使用的 sql 方言不一样。最大的区别在于使用的通配符,但如果您正在构建复杂的查询,您有时也会发现一些其他问题。
    • 我预计它会像 mavnn 所说的那样,但我无法像他那样支持它;)
    • 在 Access 中,使用旧的“SQL 89”模式,带有 * 和 ?通配符,如果通过 DAO 访问数据也是如此。如果你在Access中开启“SQL 92”模式,它会使用%和_,这也是你使用ADO/OLEDB时应该使用的。
    猜你喜欢
    • 2021-05-14
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 2014-12-04
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多