 |
|
คือ ตัวนี้สร้าง view ไว้ที่ sql ตอนเลือกมาแสดงจะเป็นแบบนี้ค่ะ
สังเกตว่าคนที่ 3 และ 4 อยู่ตำบลเดียวกัน

ทีนี้ จะเป็นคำสั่งค้นหา โดยมีฟิลเตอร์ต่าง ๆ คำสั่งเป็นอย่างนี้ค่ะ
Code (VB.NET)
select m.MemId,m.MemIn,m.memname,m.Gender,datediff("YYYY",m.MemAge,GETDATE())as Memage,m.MemTel,m.Addno,m.SubdistrictNo, ss.ssubdisname ,s.SubDisname,
m.district,m.Province,m.JoinDate,mt.MemTypeName,ms.MemStatusName,ml.MemLevelName,ic.IncomeStatusName
from member m, SubDistrict s, SubSubdistrict ss , MemType mt, MemStatus ms, MemLevel ml,IncomeStatus ic
where
m.Memname like '%ตัวอักษร%'
and s.SubDisId = 1
and ss.SsubDisId = 1
and mt.MemTypeId = 1
and ms.MemStatusId = 1
and ml.MemLevelId = 1
and ic.IncomeStatusId = 1
'ค่าพวกนี้คือ selectedvalue จาก combobox ของแต่ละตัว
ปัญหามันมีอยู่ว่า ในกรณีที่ เงื่อนไข m.memname like ตัวอักษร เป็นจริง ตัวโปรแกรมมันไม่สน and ต่าง ๆ ที่เรากำหนดไปเลยค่ะ
คือถ้าไม่มี มันก็ปรับให้เลย เช่น เงื่อนไข
ตัวอักษร คือ %อ%
ตำบล หนองบัว
บ้าน บงคำ และอื่น ๆ ซึ่งในฐานข้อมูลจะมีข้อมูลที่ตรงกับเงื่อนไขนี้ 1 คนเท่านั้น แต่พอ select มาแล้วเป็นอย่างนี้ค่ะ

นั่นก็คือ คนที่มีชื่อ 'อ' ในชื่อ ติดมาด้วย 2 คน ซึ่งคนแรก ข้อมูลในฐานข้อมูลไม่ใช่ข้อมูลนี้(เปรียบเทียบกับรูปแรก)
คือพอชื่อ มี 'อ' ในชื่อปุ๊บ ก็เอาข้อมูลนั้นมาเลย แล้วข้อมูลอื่น ๆ เช่น ตำบล บ้าน ก็ปรับตามที่เรากำหนดมาให้
จะแก้ยังไงคะ
แต่กรณีใช้เงื่อนไขเป็นค้นจากรหัสจะได้ข้อมูลที่ตรงเป๊ะเลยค่ะ คือมาแถวเดียว
รบกวนด้วยนะคะ ขอบคุณค่ะ
Tag : .NET, Ms SQL Server 2008, VB.NET, VS 2010 (.NET 4.x)
|
|
 |
 |
 |
 |
Date :
2015-10-23 03:04:07 |
By :
newbies |
View :
888 |
Reply :
3 |
|
 |
 |
 |
 |
|
|
|
 |