[英]How can I filter the database that would display into datagridview?
我有3級訪問權限,表中有STUDENT,ADMIN和INSTRUCTOR。 所以我想只展示那些“講師”。 謝謝我只是編碼的新手。
Me.cboSearchBy.SelectedIndex = 0
Dim conn As New OleDbConnection
Dim cmd As New OleDbCommand
Dim da As New OleDbDataAdapter
Dim dt As New DataTable
Dim sSQL As String = String.Empty
Try
conn = New OleDbConnection(Get_Constring)
conn.Open()
cmd.Connection = conn
cmd.CommandType = CommandType.Text
sSQL = "SELECT Username, lname + ', ' + fname + ' ' + mname as name, password FROM Instructor"
If Me.cboSearchBy.Text = "Name" Then
sSQL = sSQL & " where lname + ', ' + fname + ' ' + mname like '%" & Me.txtSearch.Text & "%'"
Else
sSQL = sSQL & " where Username =" & Me.txtSearch.Text
End If
cmd.CommandText = sSQL
da.SelectCommand = cmd
da.Fill(dt)
Me.dtgResult.DataSource = dt
If dt.Rows.Count = 0 Then
MsgBox("No record found!")
End If
Catch ex As Exception
MsgBox(ErrorToString)
Finally
conn.Close()
End Try
用此替換您的查詢部分;
sSQL = "SELECT Username, lname + ', ' + fname + ' ' + mname as name, password FROM Instructor"
If Me.cboSearchBy.Text = "Name" Then
sSQL = sSQL & " where lname + ', ' + fname + ' ' + mname like '%" & Me.txtSearch.Text & "%'"
sSQL = sSQL & " and level like '%instructor%'"
Else
sSQL = sSQL & " where Username =" & Me.txtSearch.Text
sSQL = sSQL & " and level like '%instructor%'"
End If
雖然@Nadeem_MK具有首選方法,但讓數據庫執行最佳操作,有時您需要所有數據,並且需要在本地過濾它(無需再次調用數據庫)。 你可以這樣做的一種方法是:
...Your code
da.SelectCommand = cmd
da.Fill(dt)
'Filter locally
dim drs as datarow() = dt.select("level = 'Instructor'")
'Use the datarow array as your datasource instead of the data table
Me.dtgResult.DataSource = drs
或者,如果您使用的是“BindingSource”,也可以對其進行過濾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.