SQL查询的问题
本文关键字:问题 查询 SQL | 更新日期: 2023-09-27 17:50:12
我有这个代码来查询数据库:
for (int kk = 1; kk < search.Length; kk++)
{
where += " and keyword like '%"+search[kk]+";%'";
OleDbCommand sqlcmd = new OleDbCommand(
"select id,name,address,keyword from table1 where keyword like '%"+search[0]+"%' " +
where + " order by name", sqlconConnection);
sqlcmd.CommandType = CommandType.Text;
OleDbDataReader sdaRes = sqlcmd0.ExecuteReader();
while (sdaRes.Read())
{
thumbnails_id[recordcount] = sdaRes.GetInt32(3);
recordcount++;
}
sdaResult0.Close();
}
当我在access中执行这个查询时,它返回结果,但是当我在应用程序中运行它时,它运行但不显示任何结果。
表的结构是:
数据库表是这样的:
id name keyword File Fkey
1 a yellow; c:/ 20
2 a blue; c:/ 20
3 a Pinky; c:/ 20
4 b blue; c:/ 21
5 b Redish; c:/ 21
6 c yellow; c:/ 22
7 c blue; c:/ 22
8 c Pinky; c:/ 22
9 c orange; c:/ 22
10 c Redish; c:/ 22
搜索查询应该是这样的:select * from this table1 where name like variable and variable two and variable three
等等。所以当用户输入假设橙色所有的结果应该出现当用户输入橙色后,Pinky然后橙色和Pinky的结果应该出现。但我不知道什么是错误的代码,虽然我没有得到错误或没有警告消息。
您需要OR
而不是AND
,因为关键字不能同时是'红色'和'蓝色'等
while (sdaRes.Read())
{
thumbnails_id[recordcount] = sdaResult0.GetInt32(3);
recordcount++;
}
这要么是一个打字错误,要么你没有真正从你的查询中使用的阅读器中读取结果,id也是第一列,所以我认为它应该是:
while (sdaRes.Read())
{
thumbnails_id[recordcount] = sdaRes.GetInt32(0);
recordcount++;
}