Tuesday, September 15, 2009

using SQLParameter for SQL: "LIKE '%@parameter%'"

  • ปัญหาหนึ่งที่จำไม่ค่อยได้เลยว่าเขียนอย่างไร
  • คือ การ query แบบ like โดยส่ง parameter ไปเป็นเงื่อนไข like
  • แต่ใช้แบบนี้ ไม่ได้อ่ะ
select... where c1 like '%@searchterm%'
  • แต่เราสามารถใช้ แบบนี้ แล้วทำการส่งค่ามาแบบ %คำค้น% ได้ด้วยแหละ
select ... where c1 like @searchterm
  • แต่ถ้าไม่ต้องการให้ผู้ใช้ต้องใส่ % มาก็ให้ค้นหาแบบ like ได้ก็ให้ทำ ถ้าแบบบ้านๆ ก็ + ต่อ string
  • หรือ ถ้าจะใช้แบบป้องกัน injection ด้วยแล้วก็ต้องแบบนี้เลย
select ... where c1 like '%' + @searchterm + '%'
  • แล้วเราก็ทำการส่งค่าผ่าน SqlCommand หรือ SqlDataAdapter ได้เลยครับพี่น้อง

อ้างอิง

No comments:

Post a Comment