为什么oledb dataadapter没有从vb.net中的访问数据库中获取任何数据?

时间:2013-04-02 19:59:13

标签: asp.net vb.net ms-access-2007 oledbdataadapter

我遇到了一个非常奇怪的问题。我在使用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生成的queires

    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)行不会用任何行填充数据

我对这个问题感到困惑,提前感谢任何建议和解决方案。

1 个答案:

答案 0 :(得分:3)

使用OleDB提供程序时,请尝试使用'011%'代替'011*'

我相信OleDB引擎使用%作为外卡引擎使用*字符的外卡字符。它归结为提供者。