Copyright © 2003-2009
By Suthep Sangvirotjanaphat
  Mobile: 089-967-2200, 081-915-7816
Phone: 0-2992-4877   Fax: 0-2992-4878
Fast Contact Us
^
%
.

GreatFriends.Biz Community

Custom Search
Copy เพื่ออ้างอิงถึงข้อความนี้:
 MESSAGE #99957 (อ่าน 792 ครั้ง)

ใช้ภาษา sql ใน sql2005express ค้นหาคำว่า "เล็ก"

Tags: Windows, C#, .NET 2, SQL Server 2005, VS 2008, Article
ผมใช้ dataGridView แสดงรายการทั้งหมดในตารางข้อมูล เมื่อผมต้องการค้นหาที่เฉพาะเจาะจงจากรายการทั้งหมดนี้ เช่น ต้องการค้นหาชื่อ ที่ขึ้นต้นด้วยตัวอักษรที่ระบุ โดยให้กรอกในช่อง TextBox การค้นหาชื่อภาษาไทยที่ขึ้นต้นด้วยตัวอักษร จะเป็นปกติดี แต่หากชื่อขึ้นต้นด้วยสระ เช่น ชื่อ "เล็ก" มีปัญหาในการค้นหาครับ คือ ถ้ากรอกแค่ 1 ตัว คือ 'เ%' และกรอก 2 ตัว คือ "เล%" มันจะค้นไม่เจอครับ แต่ถ้าใช้เป็น 'เล็%' มันค้นหาเจอเฉยเลยครับ
 
ภาษา sql ที่ผมใช้ ประมาณ sql = "SELECT * FROM tbl WHERE Name LIKE 'เ%'  "
 
ไม่ทราบเป็นเพราะอะไรครับ แล้วจะมีวิธีแก้ได้หรือไม่ครับ
 
ขอบคุณทุกท่านครับ
 


surasak วันที่ส่ง: 28 ม.ค. 52 03:07 GMT+7
วันที่ปรับล่าสุด: 12 ก.พ. 52 21:18 GMT+7
REPLY #1 (99988)

ไม่ได้ครับผมไม่รู้เหมือนกันว่าเพราะอะไรของผมใช้

select * from table where left(name,len(@a)) =@a
 


Pison วันที่ส่ง: 28 ม.ค. 52 13:51 GMT+7
วันที่ปรับล่าสุด: 28 ม.ค. 52 13:51 GMT+7
REPLY #2 (100062)

ลองแบบนี้ดูนะ...

sql = "SELECT * FROM tbl WHERE Name LIKE N'%เ%'    "



ziggazah วันที่ส่ง: 29 ม.ค. 52 10:35 GMT+7
วันที่ปรับล่าสุด: 29 ม.ค. 52 10:35 GMT+7
REPLY #3 (100081)
ผมก็ใช้ LIKE '%เ%' แบบนี้เหมือนกัน 


x-melody วันที่ส่ง: 29 ม.ค. 52 13:44 GMT+7
วันที่ปรับล่าสุด: 29 ม.ค. 52 13:44 GMT+7
REPLY #4 (100102)
น่าจะได้นะครับ ลองดู Collection ของ DB ว่าเป็นอะไรครับ


MR.L วันที่ส่ง: 29 ม.ค. 52 17:56 GMT+7
วันที่ปรับล่าสุด: 29 ม.ค. 52 17:56 GMT+7
REPLY #5 (100884)

ลองแบบดังข้างล่าง

sql = "SELECT * FROM tbl WHERE Name LIKE N'%เ%'    "
ไม่ได้เหมือนเดิมครับ
 
ถามต่อครับว่า Collection ของ DB หมายถึงอะไรครับ?


surasak วันที่ส่ง: 12 ก.พ. 52 16:42 GMT+7
วันที่ปรับล่าสุด: 12 ก.พ. 52 16:42 GMT+7
REPLY #6 (100888)

คลิ๊กขวาที่ database แล้วดูที่ properties ครับ จะมี collation บอก

 
เป็นการกำหนดภาษาใน database ครับ ถ้าภาษาไทยส่วนใหญ่เค้าจะใช้ thai_ci_as


SuperLouis วันที่ส่ง: 12 ก.พ. 52 17:11 GMT+7
วันที่ปรับล่าสุด: 12 ก.พ. 52 17:11 GMT+7
REPLY #7 (100896)
ไปดู properties ของ database แล้ว colllation เป็น Thai_CI_AS อยู่แล้วครับ


surasak วันที่ส่ง: 12 ก.พ. 52 21:18 GMT+7
วันที่ปรับล่าสุด: 12 ก.พ. 52 21:18 GMT+7
กระทู้นี้มีอายุเกิน 365 วันแล้ว ท่านจะไม่สามารถตอบกระทู้นี้ได้อีก
ถ้าต้องการสนทนาต่อ กรุณาตั้งเป็นกระทู้ใหม่ได้ในหน้าโฮม
และอาจจะอ้างถึงกระทู้นี้ โดยก๊อปปี้ข้อความในกล่องสีขาวด้านล่างไปแปะในกระทู้ใหม่

copy เพื่ออ้างอิงถึงข้อความนี้:
ใช้ภาษา sql ใน sql2005express ค้นหาคำว่า "เล็ก"
http://greatfriends.biz?99957


8 ก.ย. 19:50
Online: 161