【发布时间】:2013-03-19 15:32:06
【问题描述】:
今天早上我遇到了一个在任何地方都找不到答案的问题,所以现在我只是问那些可能比我更了解这个主题的人;)。所以这就是问题所在,当我在 MS Access 中执行某个查询时,我得到了我期望收到的行,那里没有问题。但是,当我在 OleDbCommand 对象中运行完全相同的命令(复制粘贴)时,它不会返回任何内容。我的数据表是空的。我将复制查询,以便您可能会发现我可能不知道的语法差异:
odbCommand = New OleDbCommand( _
"SELECT IDTemps, NomEmploye, HreAllouees, HreReelles, TauxHoraire, " & _
" Description, NoProjet_Short, NoJob, Type FROM TableA " & _
" WHERE NoProjet_Short = '13015' " & _
" AND Type = 'DessinE' ", odbConnection)
dbAdapter = New OleDbDataAdapter(odbCommand)
odbConnection.Open()
dbAdapter.Fill(dtTable)
注意:这是代码的核心,没有贴错误管理(因为我没有错误,我的DataTable只是空的,不应该)。
谢谢 西蒙
【问题讨论】:
-
你确定
NoProjet_Short是一个文本数据字段吗? -
@Steve 是的,NoProjet_Short 字段是数据库中的文本字段。
-
你能检查一下连接吗?您是否可能正在使用不同的访问文件? (注意项目工作文件夹中的数据库文件和bin\debug目录下的数据库)
-
@Steve 连接字符串指向正确的数据库。我之前在此命令上执行了另一个查询,但我不得不更改它,现在它不起作用(我发布的那个)。这就是为什么,对我来说,它指出了 Ole 处理查询和 Access 的方式之间的差异。就像 Access 和 SQL Server 的语法差异一样。
-
可能,但不适用于此查询。这是一个基本的选择,没有任何花哨的结构,只能由 Access 解释。它应该按原样工作。另一种选择是在 where 条件下(没有需要值的记录),但我认为您已经检查过这个
标签: sql vb.net ms-access oledb oledbcommand