2013-04-02 20 views
1

我陷入了一个非常奇怪的问题。我在的ASP.NET VB工作与MS Access 2007年为什么oledb dataadapter不能从vb.net中的访问数据库中获取任何数据?

中序我使用下面的代码来获取数据片断

 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.即没有数据从数据库中获取。我说这是一个更加棘手的问题,因为在debigging时,我使用where子句复制了sQuery,并在ms访问中运行,并在那里返回数据。我不明白我错过了什么。 我表示为sQuery

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

产生但queires时sQuery有

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

它取行中的MS Access,但是,adapter.Fill(DT)行不填充与数据表任何行

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

+2

尝试使用''011%''代替。 – LarsTech

+0

它的工作!现在它引发了另一个问题,通配符在asp.net和ms访问中有所不同吗?因为现在我在ms访问中尝试了这个查询,并且它没有返回任何数据。 – Pankouri

回答

3

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

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

相关问题