Dim tempStr As String = String.Empty
tempStr = txtSearch.Text.Trim()
If (tempStr.Length = 0) Then
tempStr = "'*'"
Else
tempStr = "'*" & tempStr & "*'"
End If
Dim dtAdapter2 As OleDbDataAdapter = New OleDbDataAdapter( _
"SELECT * FROM Contacts WHERE " & fdName & _
" LIKE " & tempStr & " , dbConn)
เอาไปแทน Code (VB.NET)
Dim dtAdapter2 As OleDbDataAdapter = New OleDbDataAdapter( _
"SELECT * FROM Contacts WHERE " & fdName & _
" LIKE '" & "%" & txtSearch.Text & "%'", dbconn)
Private Sub btnFilter_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnFilter.Click
Dim i As Integer
If addNewMode Then
Exit Sub 'ถ้าอยู่ในโหมดการเพิ่มเรคอร์ดให้ออกจาก Procedure นี้
ElseIf txtSearch.Text <> String.Empty Then 'ถ้าอยู่ในโหมดแก้ไขเรคอร์ดและป้อนข้อมูลในช่อง "ค้นหา/กรองข้อมูล"
' ให้เลือกข้อมูลจากเทเบิล Contactsที่ตรงกับข้อมูลที่ต้องการกรอง********ช่วงที่ทำงานไม่ตรงครับทั้ง ที่เหมือนกับต.ยทั้งสิ้น
'แต่ถ้าเป็นโปรแกรมตัวอย่างกับกรองได้ครับ.....งงงงงงงงงงงงงงงงงงงงงงงงงง งงงงงงงงงง
Dim commandString As String = String.Format("SELECT * FROM Contacts WHERE {0} LIKE @Keyword", fdName )
Dim command As New OleDbCommand(commandString, dbconn)
command.Parameters.AddWithValue("@Keyword", String.Format("*{0}*", txtSearch.Text))
Dim dtAdapter2 As OleDbDataAdapter = New OleDbDataAdapter(command)
Try
MessageBox.Show(fdName, txtSearch.Text, MessageBoxButtons.OK)
dtAdapter2.Fill(dtTable) 'ให้ตัวแปร dtTable แทนข้อมูลที่ได้จากการกรอง
'ถ้าเป็น datatable ว่าง แสดงข้อความบอกให้ทราบ
Catch er As Exception
Picture.Image = Nothing
MessageBox.Show(er.Message() & vbCrLf & er.StackTrace)
Finally
If dtTable.Rows.Count = 0 Then
MessageBox.Show("ไม่พบข้อมูลที่ต้องการ ! ", "ผลการกรอง", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
btnFirst.Enabled = False
btnPrevious.Enabled = False
btnNext.Enabled = False
btnLast.Enabled = False
btnAdd.Enabled = False
btnDelete.Enabled = False
btnEdit.Enabled = False
btnCancel.Enabled = False
btnFind.Enabled = False
End Try
End If
Me.Activate()
End Sub
'Procedure กำหนดชื่อฟีลด์ในตัวแปร fdName เมื่อคลิกปุ่ม RadioButton
Private Sub RadioButton_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles radFName.Click, radLName.Click, _
radDist.Click, radCity.Click, radPosCode.Click, _
radPhone.Click, radEmail.Click
Dim radioSender As RadioButton = CType(sender, RadioButton)
Select Case CInt(radioSender.Tag)
Case 0 : fdName = "[Name]"
Case 1 : fdName = "[Surname]"
Case 2 : fdName = "[District]"
Case 3 : fdName = "[Province]"
Case 4 : fdName = "[Postcal]"
Case 5 : fdName = "[Tel]"
Case 6 : fdName = "[email]"
End Select
If addNewMode Then 'ถ้าอยู่ในโหมดเพิ่มเรคอร์ดใหม่
txtSearch.Enabled = False 'ให้ช่อง "ค้นหา/กรองข้อมูล" ใช้งานไม่ได้
Else
txtSearch.Enabled = True 'ถ้าอยู่ในโหมดแก้ไขเรคอร์ด ให้ช่อง "ค้นหา/กรองข้อมูล" ใช้งานได้
End If
txtSearch.Text = String.Empty 'ล้างช่อง "ค้นหา/กรองข้อมูล" ให้เป็นค่าว่าง
txtSearch.Focus() 'เลื่อนเคอร์เซอร์รับข้อมูลไปที่ช่อง "ค้นหา/กรองข้อมูล"
End Sub
Dim commandString As String = String.Format("SELECT * FROM Contacts WHERE {0} LIKE @Keyword", fdName )
Dim command As New OleDbCommand(commandString, dbconn)
command.Parameters.AddWithValue("@Keyword", String.Format("*{0}*", txtSearch.Text))
เป็น
Code (VB.NET)
Dim commandString As String = String.Format("SELECT * FROM Contacts WHERE {0} LIKE ?", fdName )
Dim tempStr As String = String.Empty
tempStr = txtSearch.Text.Trim()
If (tempStr.Length = 0) Then
tempStr = "*"
Else
tempStr = "*" & tempStr & "*"
End If
Dim command As New OleDbCommand(commandString, dbconn)
command.Parameters.Add ( "@SearchValue", OleDbType.VarChar, 255).Value = tempStr