舉例說明,實現(xiàn)如下多條件查詢:

成都創(chuàng)新互聯(lián)公司長期為上1000+客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網生態(tài)環(huán)境。為霍州企業(yè)提供專業(yè)的網站設計制作、做網站,霍州網站改版等技術服務。擁有十載豐富建站經驗和眾多成功案例,為您定制開發(fā)。
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, "圖書音像管理系統(tǒng)" ? 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
直接txt的值就是表名稱了啊.
dim?straa?as?string???????????????'straa就是要查詢的表名稱
straa=combo1.text;?????????????'straa就是要查詢的表名稱
select?*?from?straa??????????????'straa就是要查詢的表名稱
Private Function SetFilter() As String
Dim StrFilter As String = ""
If ComboBox_XingBie.Text "全部" Then
StrFilter = String.Format("性別字段 = '{0}'", ComboBox_XingBie.Text)
End If
If StrFilter "" Then StrFilter = " and "
If TextBox_XingMing.Text "" Then
StrFilter = String.Format("姓名字段 = '{0}'", TextBox_XingMing.Text)
End If
If StrFilter "" Then StrFilter = " and "
If CheckBox_AiHao.Checked = True Then
StrFilter = String.Format("愛好字段 = '{0}'", CheckBox_AiHao.Text)
End If
Return StrFilter
End Function
Private Sub CheckBox_AiHao_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles CheckBox_AiHao.CheckedChanged, TextBox_XingMing.TextChanged, ComboBox_XingBie.SelectedIndexChanged
數(shù)據(jù)表指針.filter = SetFilter()
End Sub
這個只能是一一判斷的:
為了敘述簡單,假設有兩個可選條件,內容在: 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
注意:對于字符類型的字段,當然要用單引號,上面那樣的,但是對于數(shù)值類型,就不要這個單引號的;但是對于日期類型,那么與字符類型不同的是,把前后的2個單引號,改為井號就是“#”, 這是很多初學者容易忽略的,也是很多教科書上不提的問題。
對于文本框,由于.NET不提供控件數(shù)組,但是還是可以用語句來實現(xiàn)類似數(shù)組的操作,這樣以上IF語句,就可以簡化。
直接用datatable的Select選項,篩選出來是一個Datarow組,然后再循環(huán)它就可以了。
Dim dtrs as DataRow() =dataset.datatable.Select("列名 = '條件' ")
if dtr.rows 0 Then
for each dtr as DataRow in dtrs
'你的處理代碼~
next
endif
文章名稱:vb.net按條件查詢,vb多條件查詢數(shù)據(jù)庫
網站鏈接:http://www.js-pz168.com/article44/hcesee.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供做網站、網站內鏈、軟件開發(fā)、定制網站、網頁設計公司、商城網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)