RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
vb.net多条件判断 vba多条件判断语句

求教啊求教,关于在VB.NET中不定项多条件查询的难题

这个只能是一一判断的:

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的托里网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

为了叙述简单,假设有两个可选条件,内容在: TextBox1(姓名)、TextBox2(部门)

主要是构造 Sql的Where子句,那么:

Dim MySqlWhere As String

MySqlWhere=""

If TextBox1.Text"" Then

MySqlWhere= " Where 姓名 = '" TextBox1.Text "'"

End If

If TextBox2.Text"" Then

if MySqlWhere="" Then

MySqlWhere= " Where 部门 = '" TextBox1.Text "'"

Else

MySqlWhere= MySqlWhere " And 部门 = '" TextBox1.Text "'"

End If

End If

'如果还有第3,第4,那只能这样了:

If TextBox3.Text"" Then

if MySqlWhere="" Then

MySqlWhere= " Where 字段3 = '" TextBox3.Text "'"

Else

MySqlWhere= MySqlWhere " And 字段3 = '" TextBox3.Text "'"

End If

End If

......

If TextBoxn.Text"" Then

if MySqlWhere="" Then

MySqlWhere= " Where 字段n = '" TextBoxn.Text "'"

Else

MySqlWhere= MySqlWhere " And 字段n = '" TextBoxn.Text "'"

End If

End If

注意:对于字符类型的字段,当然要用单引号,上面那样的,但是对于数值类型,就不要这个单引号的;但是对于日期类型,那么与字符类型不同的是,把前后的2个单引号,改为井号就是“#”, 这是很多初学者容易忽略的,也是很多教科书上不提的问题。

对于文本框,由于.NET不提供控件数组,但是还是可以用语句来实现类似数组的操作,这样以上IF语句,就可以简化。

VB 多条件查询

举例说明,实现如下多条件查询:

Private Sub Command1_Click() Dim jsql jsql = ""

Dim smyregion As String If Check1.Value = 1 Then

jsql = "图书名称 like '%" + Text1.Text + "%'" End If

If Check2.Value = 1 Then    If jsql = "" Then

jsql = "作者姓名 like'%" + Text2.Text + "%'"    Else

jsql = jsql "and 作者姓名 like'%" + Text2.Text + "%'"     End If End If

If Check3.Value = 1 Then    If jsql = "" Then

jsql = "出版社名称 like'%" + Text3.Text + "%'"     Else

jsql = jsql "and 出版社名称 like '%" + Text3.Text + "%'"     End If End If

If Check4.Value = 1 Then   If jsql = "" Then

jsql = "出版时间 like '%" + Text4.Text + "%'"     Else

 jsql = jsql "and 出版时间 like '%" + Text3.Text + "%'"     End If End If

If Check5.Value = 1 Then    If jsql = "" Then

jsql = "图书类别 like '%" + Text5.Text + "%'"

Else

 jsql = jsql "and 图书类别 like '%" + Text5.Text + "%'"     End If End If

If jsql = "" Then

MsgBox "请选择查询条件!", vbInformation, "图书音像管理系统"   Exit Sub Else

Adodc1.RecordSource = "select * from book where " jsql   Adodc1.Refresh End If

If Adodc1.Recordset.RecordCount 0 Then   Set DataGrid1.DataSource = Adodc1 End If    End Sub

Private Sub Command2_Click() Unload Me End Sub

VB.net中的 and判断条件问题

911 X + 1 916 还有 704 Y +  1 709,没有这么连续判断的。

是比较运算符,是运算符!+、-、*、/ 是算术运算符,也是运算符!

既然是运算符,就得按照运算优先级(所谓优先级,就是 * 运算比 + 运算要优先)从左到右依次计算,显然 911 X + 1 916 里两个 的运算优先级是相同的。

那么从左至右依次计算,先算 911 X + 1,得到结果 True(-1) 或者 False(0)(不要问我为什么True=-1,False=0,.NET里就是这么规定的),再计算 True / False 916,结果始终为 True。704 Y + 1 709 也是同理,两个 True 之间 And 了还是 True,结果当然是条件一直成立。

正确写法:

If (911  X + 1 And X + 1  916) And (704  Y + 1 And Y + 1  709) Then


网页名称:vb.net多条件判断 vba多条件判断语句
链接URL:http://scyingshan.cn/article/doggeeo.html