1

我遇到了一个非常特殊的问题。我正在使用 ms access 2007 在 asp .net vb 中工作

为了获取数据,我使用以下代码片段

        connection = utility.GetConnection()
        Dim command As New OleDbCommand(sQuery, connection)
        Dim adapter As New OleDbDataAdapter(sQuery, connection)
        Dim dt As New DataTable()
        adapter.SelectCommand = command
        adapter.Fill(dt)

当我使用没有 where 子句的查询时,它可以工作。即 IT 获取所有行并填充数据表。但是当 sQuery 带有 where 子句时,dt.Rows.Count 总是给出 0。即没有从数据库中获取数据。我说这是一个更特殊的问题,因为在调试时我复制了带有 where 子句的 sQuery 并在 ms 访问中运行,它正在返回数据。我不明白我错过了什么。我正在显示为 sQuery 生成的查询

    SELECT * FROM ORDER_VIEW WHERE 1 = 1 (I don have any problem with that)

但是当 sQuery 有

  SELECT * FROM ORDER_VIEW WHERE 1 = 1 AND ITEM_ID_NO LIKE '011*' 

它在 ms 访问中获取行,但是 adapter.Fill(dt) 行不会用任何行填充数据表

我被这个问题困住了,提前感谢任何建议和解决方案。

4

1 回答 1

3

使用 OleDB 提供程序时,请尝试使用'011%'而不是'011*'.

我相信 OleDB 引擎使用%Access 引擎使用该字符的通配符*。它归结为提供者。

于 2013-04-02T20:17:16.817 回答