SQL多条件查询语句应怎么写

public bool OperationSelect()//根据常量来分解消息包
{
switch (flgstr)//result用来返回操作是否成功
{
case "Logo": MsgDetail(); result = Log(); //对数据库的
break;
case "Find": MsgDetail(); result = Find();
break;
case "User": MsgDetail(); result = User();//对聊天对象的操作
break;
default: result = false;
break;
}
return result;
}
/// <summary>
///
/// </summary>
private void MsgDetail()
{
for (int i = 0,num=0; i < total; num++)//解包,提取各字段长度及消息
{
Buffer.BlockCopy(buffer, i, lenghtbuffer, 0, 4);
int count = BitConverter.ToInt32(lenghtbuffer, 0);
if (count == 0)//说明不需要对这个字段的数据进行检查,此时可以用通酏符进行操作
{
Flag[num] = "%";
i += 4;
continue;
}
Console.WriteLine(count);
i += 4;
Flag[num] = Encoding.Default.GetString(buffer, i, count);
i += count;
}
}
private bool Find()
{
bool logresult = true;
SqlDataBase obj = new SqlDataBase();
if (!(obj.Connection()))
{
Console.WriteLine("数据库连接失败");//数据库连接失败
logresult = false;
return logresult;
}
else
{//这里出现了问题,这条语句应怎么写啊?其中会有通酏符%
str = "select * from UserInformation where " +
"ID lile '" + Flag[0] + "' and " +
"Name like '" + Flag[1] + "' and " +
"Age like '" + Flag[2] + "' and " +
"Sex like '" + Flag[3] + "' and " +
"Cale like '" + Flag[4] + "' and " +
"Enducation like '" + Flag[5] + "' and " +
"Salary like '" + Flag[6] + "' and " +
"Contact like '" + Flag[7] + "' and " +
"Address like '" + Flag[8] + "'and ";
Console.WriteLine(str);
if (!(obj.Command(str))) //发送操作命令,查找是否有该用户
logresult = false;
return logresult;
}
Console.WriteLine("查找成功");
return true;
}
无论加不加AND都会有误,应怎么写这条查询语句?错误提示是:在应使用条件的上下文(在LIKE附近)中指定了非布尔类型的表达式.like改为=也不行,总之能用的方法都用了

第1个回答  2009-01-20
告诉你个好办法,
在where后面加 1=1
然后呢, 把 And 加到前面, 试试这个
============================================================

str = "select * from UserInformation where 1 = 1 " +
" And ID like '" + Flag[0] + "' "
" And Name like '" + Flag[1] + "' " +
" And Age like '" + Flag[2] + "' " +
" And Sex like '" + Flag[3] + "' " +
" And Cale like '" + Flag[4] + "' " +
" And Enducation like '" + Flag[5] + "' " +
" And Salary like '" + Flag[6] + "' " +
" And Contact like '" + Flag[7] + "' " +
" And Address like '" + Flag[8] + "' ";

而且我发现你的第一个like 写错了。
"ID lile '" + Flag[0] + "' and " +
----

晕, 没有分啊。。。。。
第2个回答  2009-01-17
"ID likle '" + Flag[0] + "%' and " +
..."%' and....
最后多了一个 and
最简单的方法是把后面3个字截了本回答被提问者采纳
相似回答
大家正在搜