ลงชื่อเข้าใช้
กระดานข่าว VB
>
เว็บบอร์ดเปิดโค้ดต้นฉบับ
ส่ง
|
[VB.NET] การค้นหาข้อมูลอย่างรวดเร็วทันใจ (Quick Search)
ดู7186
|
โพสต์1
|
บุ๊คมาร์ก
thongkorn
ดูทั้งหมด
2018-3-14 12:14:01
สำหรับบทความนี้ แอดมินขอนำเสนอวิธีการค้นหาข้อมูลอย่างรวดเร็ว โดยการกดคีย์ หรือคำที่ต้องการ ระบบมันก็จะทำการประมวลผล Query ใหม่ เพื่อทำการค้นหาคำที่มีลักษณะใกล้เคียงกัน ด้วยคำสั่ง LIKE ...
Visual Basic จะมีหลักการที่สำคัญ คือ Event/Driven
...
Event คือ เหตุการณ์
ในตัวอย่างนี้จะเกิดเหตุการณ์ที่
txtSearch_TextChanged
โดยมีการกดคีย์ลงในช่อง TextBox แล้วเกิดการเปลี่ยนแปลงค่า
Driven คือ เมื่อเกิดเหตุการณ์ในการกดคีย์ แล้วจะให้มันไปทำอะไร
... นั่นคือ ค้นหาข้อมูล
LIKE Syntax
SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;
ตัวอย่าง
การค้นหาคำที่ขึ้นต้นด้วยอะไรก็ได้ แต่ตามด้วย
'
a
'
SELECT * FROM Customers
WHERE CustomerName LIKE
'
%a
'
;
ตัวอย่าง
การค้นหาคำที่ขึ้นต้น หรือลงท้ายด้วยอะไรก็ได้ แต่มี 'a' อยู่ภายในนั้น
SELECT * FROM Customers
WHERE CustomerName LIKE
'
%a%
'
;
เช่น
'
12a6599XYZ
'
หรือ
'
a2222
'
หมายเหตุ:
การที่เครื่องหมาย
Single Quote
'
ปิดหัวท้าย หมายความว่าเป็นการค้นหาข้อมูลแบบ String
ตัวอย่างของการใช้งานจริง
...
โค้ด:
Dim Statement As String = _
" Select * FROM ProvinceData WHERE " & _
" ProvinceName LIKE '%" & txtSearch.Text & "%'" & _
" OR " & _
" ShortThai LIKE '%" & txtSearch.Text & "%'" & _
" OR " & _
" ShortEng LIKE '%" & txtSearch.Text & "%'" & _
" ORDER BY ProvincePK, ProvinceName "
เป็นการค้นหาชื่อจังหวัด (ProvinceName) หรือ ชื่อจังหวัดไทยแบบย่อ (ShortThai) หรือ ชื่อจังหวัดอังกฤษแบบย่อ (ShortEng) ไปพร้อมๆกัน โดยมีการต่อเชื่อมเงื่อนไขด้วย OR (หรือ) โดยที่ Users ไม่จำเป็นที่จะมาเลือกก่อนว่า ต้องการค้นหาข้อมูลแบบไหน ...
มาดูโค้ดกันเถอะ
...
โค้ด:
' / --------------------------------------------------------------------
' / Developer : Mr.Surapon Yodsanga (Thongkorn Tubtimkrob)
' / eMail : thongkorn@hotmail.com
' / URL: http://www.g2gnet.com (Khon Kaen - Thailand)
' / Facebook: https://www.facebook.com/g2gnet (For Thailand)
' / Facebook: https://www.facebook.com/commonindy (Worldwide)
' / Purpose: Quick search database by specifying the ProvinceName, ShortThai and ShortEng keyword.
' / Microsoft Visual Basic .NET (2010) SP1
' / This is open source code under @CopyLeft by Thongkorn Tubtimkrob.
' / You can modify and/or distribute without to inform the developer.
' / --------------------------------------------------------------------
Imports System.Data.OleDb
Public Class frmQuickSearch
Dim Conn As OleDb.OleDbConnection
Private Sub frmQuickSearch_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.CenterToScreen()
txtSearch.Text = ""
'/ Configure my DataBase Path
Dim strPath As String = Application.StartupPath
'/ strPath to Lower Case and Replace.
strPath = strPath.ToLower.Replace("\bin\debug", "")
'/ Connection String
Dim strConn As String = _
" Provider=Microsoft.ACE.OLEDB.12.0;" & _
" Data Source = " & strPath & "ProvinceData.accdb; " & _
" Persist Security Info=False;"
Try
'/ Connect DataBase
Conn = New OleDb.OleDbConnection(strConn)
'/ Conn.Open()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information)
End Try
End Sub
Private Sub txtSearch_TextChanged(sender As System.Object, e As System.EventArgs) Handles txtSearch.TextChanged
'/ Cut off the characters unwanted.
txtSearch.Text = txtSearch.Text.Replace("%", "").Replace("'", "").Replace("*", "")
'/ Skip this sub if null value.
If Trim(txtSearch.Text) = "" Or Len(Trim(txtSearch.Text)) = 0 Then Exit Sub
'/ Set SQL statements
Dim Statement As String = _
" Select * FROM ProvinceData WHERE " & _
" ProvinceName LIKE '%" & txtSearch.Text & "%'" & _
" OR " & _
" ShortThai LIKE '%" & txtSearch.Text & "%'" & _
" OR " & _
" ShortEng LIKE '%" & txtSearch.Text & "%'" & _
" ORDER BY ProvincePK, ProvinceName "
'/ Connect already in Form_Load
If Conn.State = ConnectionState.Closed Then Conn.Open()
Dim Cmd = New OleDbCommand(Statement, Conn)
Dim DR As OleDbDataReader = Cmd.ExecuteReader
Dim DT As New DataTable
DT.Load(DR)
dgvData.DataSource = DT
DR.Close()
Conn.Close()
End Sub
Private Sub btnExit_Click(sender As System.Object, e As System.EventArgs) Handles btnExit.Click
Me.Close()
End Sub
Private Sub frmQuickSearch_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
Conn.Close()
Me.Dispose()
Application.Exit()
End Sub
End Class
ดาวน์โหลดโค้ดต้นฉบับ VB.NET (2010) ได้ที่นี่ ...
ไฟล์แนบ:
คุณจำเป็นต้อง
ลงชื่อเข้าใช้
ก่อนจึงจะสามารถดูและดาวน์โหลดไฟล์แนบได้ หากยังไม่มีบัญชีหรือยังไม่ได้เป็นสมาชิก กรุณา
ลงทะเบียน
g2gsoftuser
ดูทั้งหมด
2022-10-25 19:35:10
ขอบคุณครับ
G2GNet.com
Powered by
Discuz!
X3.4
โฮมเพจ
|
รูปแบบทั่วไป
|
รูปแบบโมเดิร์น
|
รูปแบบคอมพิวเตอร์