05
2016
05

在vb中用sql select多条件、未知条件个数查询的简单方法

在vb中我们可以连接数据库,然后用sql语句来查询修改数据里的内容,在查询的时候,如果条件单一或者已知条件,那么直接

select * from test where sname=‘’and sno=‘’and sclass=‘’

但是如果在这些条件,用户不想全都查询,只查询其中的一个或者2个,那么就需要用点小技巧了。不然一个参数有一种可能,2个参数有3种可能,3个参数就有7种可能,4个参数就有15种可能。。。。。而且每种可能都需要一个if来判断


网上有人说用模糊查询,但是我没有琢磨出来,下面我用网上的方法结合成功完成多条件查询功能


遇到未知量一般就采用变量来写,有几个条件就放几个text,然后用if判断text是否为空,下例就用4个条件的

以下的c,d,e,f 变量来表示text1 text2 text3 text4所填的内容 这个这前面要自己定义和赋值了,或者直接代替使用也可以

If Text1.Text <> "" Then

 wherestr = wherestr + "sname='" + c + "'"‘用wherestr来作为where的一个组合,把where之后的语句都用这个变量来表示

End If

If Text2.Text <> "" Then

  If Text1.Text <> "" Then’判断text1 也就是sname 用户有需要查吗,

    wherestr = wherestr + "and sno='" + d + "'"‘因为多条件查询要用到and ,如果第一个不需要那个会多出一个and 所以要先判断

  Else

    wherestr = wherestr + "sno='" + d + "'"’这里没有第一个查询条件,所以 sno的条件当第一个条件,下面都一样

  End If

End If

If Text3.Text <> "" Then

  If Text1.Text <> "" Or Text2.Text <> "" Then

     wherestr = wherestr + "and sclass='" + e + "'"

  Else

     wherestr = wherestr + "sclass='" + e + "'"

  End If

End If

If Text4.Text <> "" Then

  If Text1.Text <> "" Or Text2.Text <> "" Or Text3.Text <> "" Then

     wherestr = wherestr + "and sqq='" + f + "'"

  Else

     wherestr = wherestr + "sqq='" + f + "'"

  End If

End If


sql = "select * from test where " + wherestr + ""‘上面有几个条件就用几个if来判断后,where变量放进去就行了



上面的内容要知道怎么用变量来代替条件,用'“+变量+”'这样;还有注意数据库中字段的数据类型


好了,分享完毕,如果是新手的话,可能会有很多问题,确保数据库连接成功后,以上代码,肯定能实现!!!


« 上一篇 下一篇 »