用于查询Access数据库的SQL字符串

时间:2013-03-19 01:44:59

标签: sql vb.net ms-access oledb

我在访问数据库上使用oledb查询的命令行时遇到了一些麻烦。 我已经尝试了许多不同的语法,无论是访问还是我的代码。与数据库的连接很好,当我尝试填充da时,或者当我在访问中将其作为查询运行时,会出现错误。

SELECT * FROM MyTable WHERE MyColumn = 'This Text String';

当我在access中运行它时,我得到数据类型不匹配。双引号产生相同的结果。我认为这是因为空格,我试图将文本字符串包装在方括号中:

SELECT * FROM MyTable WHERE MyColumn = [This Text String];

在Access中,这会提示“输入参数值”,将参数列为“此文本字符串”。

我也尝试过使用Like运算符:

SELECT * FROM MyTable WHERE MyColumn LIKE 'This Text String';

无论是单引号还是双引号,都不会产生错误,但也不会产生任何结果。我试过CONTAINS,这给了我一个语法错误。

此时我不知道还有什么可以尝试。我想要完成的是:

  

返回'MyTable'中的所有行,其中'MyColumn'中的文本等于'This Text String'

有人能帮助我吗?我觉得我忽略了一些东西,可能很明显。


编辑:啊......我不确定这是不是问题,但也许会有所帮助。

我刚刚意识到我试图基于的过滤列(MyColumn),不仅仅是访问中的纯文本,它实际上是在另一个表中查找列。

Pehaps就是这个问题,因为数据类型实际上不是文本,而是数字(因为它是一个列表)。好的......我怎么克服这个?

1 个答案:

答案 0 :(得分:1)

您需要加入查找表

SELECT * FROM MyTable INNER JOIN Lookup l on MyColumn = l.key and l.value =  'This Text String';