ปํญหาการ Search ใน Sql server ce จะแก้อย่างไรดีครับ

Last post 2 Oct 2009 0:14 by leesukik. 2 replies.
Page 1 of 1 (3 items)
Sort Posts: Previous Next
  • 28 Sep 2009 1:29

    ปํญหาการ Search ใน Sql server ce จะแก้อย่างไรดีครับ

    รบกวนพี่ AdminCoresharp ด้วยครับ ปัญหา คือ การ search ใน Sql server ce ที่มีคำศัพท์ 100000 กว่าคำ ตอนนี้มัน search ได้ช้าเอามากๆ คือว่าผมใช้ คำสั่ง "select ID,Vocab From Vocabularys Where Vocab LIKE " & Textbox.text & "%" เพื่อดึงข้อมูลมาจากฐานข้อมูล ที่ละตัวอักขระ เพราะ ใช้ keysup รับค่าเข้า textbox คือว่า พอกด อักขระ 1 ตัว มันก็จะไปค้นที่ database อยากให้คำศัพท์ มันไปเก็บไว้ที่ DataTable แล้วค้นใน DataTable แทนการค้นใน Database ควรทำอย่างไรดี จะมีวิธี ค้นคำ อย่างไร เช่น Ant พิมพ์ A ตัวแรกก็จะขึ้น ดังรูป



    ตัวอย่างโค้ด search

    เก็บไว้ใน listbox

    ผมจับตัว Dataset มาค้นหา แต่อยากทำการค้นใน DataTable คิดกระบวนการไม่ออกครับ คือว่ามันรับมาที ละตัวอักขระ แล้วพอดึงมาจาก datatable แล้วจะให้มันแสดงใน ListBox แบบที่แสดงออกมา ได้อย่างไร ตอนแรกกะว่าจะไม่รบกวนพี่อีกล่ะ แต่ไปไม่รอดจริงๆ ครับ รบกวนด้วยครับ
  • 30 Sep 2009 10:52 In reply to

    Re: ปํญหาการ Search ใน Sql server ce จะแก้อย่างไรดีครับ

     Search ด้วย LIKE มัน Match ทุก Record ครับ ถึงเคยบอกว่า ต้องแยก Index งัย Smile

    ไม่งั้น ลองแบบนี้ครับ เพิ่มฟิลด์มาอีก ชื่อว่า Prefix แล้ว ตัด 2ตัวอักษรแรกมาใส่ (หรือ ตัวเดียวก็ได้) ในฟิลด์นั้น จากนั้น ทำให้ฟิลด์นีเเป็น Index

    จากนั้น เวลา Query ใช้การ Query แบบตรงตัวแทน เช่น SELET * FROM Vocab WHERE prefix='ab' แน่นอนว่า จะทำ field prefix นี้มากี่ฟิลด์ก็ได้ และต้องอย่าลืมว่า SQL CE ใช้ทีละ 1 index

     

    ถัดมาคือ ให้อ่านจาก Table ตรงๆ อย่าอ่านใส่ Data Table ครับ (อ่านด้วย SqlCeDataReader)

  • 2 Oct 2009 0:14 In reply to

    Re: ปํญหาการ Search ใน Sql server ce จะแก้อย่างไรดีครับ

    ขอคุณสำหรับคำแนะนำ ครับ
Page 1 of 1 (3 items)