从Access中选择多条记录

时间:2011-02-15 16:41:38

标签: c# ms-access

我有如下所述的Access表,现在在搜索中我有一个用于搜索的文本框,它将输入作为字符串,所以当我放入搜索假设 bmw 然后我得到搜索结果正确的,但如果我把宝马铃木那么我什么都没得到。

我正在使用此代码从数据库中获取值:

string [] car_name;     
string allnames = "'" + String.Join("','", car_name) + "'";
 for (int k = 0; k < car_name.Length; k++)
            {
  oledbcommand cmd1= new oledbcommand("select * from table1 where name in (" + allnames + ",myconnection)
  cmd1.exectuenonquery();

这是表结构:

id  name keywords
1   cars  bmw

2   cars  toyota

3   cars  suzuki

4   truck bmw

5   truck scania

6   jeeps bmw

7   jeeps suzuki

3 个答案:

答案 0 :(得分:1)

您的SQL看起来很好,但为什么要调用ExecuteNonQuery?这适用于插入,更新和删除;它不会返回任何行数据。您需要调用ExecuteReader或切换到数据适配器并填充数据集。

还要确保正确引用您的IN语句。它应该是IN('value1','value2')

select * from table1 where name in ('BMW','Audi')应该是设置为命令文本的内容。

答案 1 :(得分:1)

看起来你可能错过了结束语 - ) - 来自你的SQL语句:

oledbcommand cmd1= new oledbcommand("select * from table1 where name in (" + allnames + ")",myconnection)

答案 2 :(得分:0)

我会使用OR statment ...就像这里:

SELECT * FROM Persons
WHERE FirstName='Tove'
OR FirstName='Ola'