作者melvinlee (Melvin)
看板C_Sharp
標題[問題] 關於SQL使用參數化查詢,combobox.selectItem.ToString()
時間Mon Jun 7 15:36:36 2010
各位先進好:
日前碰到關於查詢的問題,
我sql語法使用參數化查詢,
查詢條件的輸入欄位有四個分別為兩個textbox員編,姓名及兩個combobox職稱,班別
我想要做的功能是輸入任何一個欄位條件查詢皆可
也就是說可以輸入tb1 ->查詢資料 或者tb1 and tb2 ->查詢 或四個欄位條件都選
(就是畫面有四個欄位可以給user輸入條件後查詢結果,最少一個條件,最多四個)
但我下SQl目前用select * from [table] where 員編=@ID and ....group by 員編
如果用and:tb1有輸入tb2沒輸入就沒辦法以tb1去查詢到結果,有員編001但不會show
如果用or:則tb1輸入員編001,tb2輸入Melvin 會跑出兩筆結果,但結果應該要無此資料
Q1:這邊的sql該用甚麼觀念去下比較對呢?
Adapter.SelectCommand.Parameters.(太長接下面)
Add("@Class",OleDbType.Char, 5).Value = comboBox2..SelectedItem.ToString()
另外這邊想順便問一下,查詢的時候沒選cb2為所以值null,
但這樣在加入參數的時候就會有error表示要確認是否為null;
Q2:那這樣我該怎麼加入參數呢?
我有上姿勢佳找看看,
有人的回答大概是這樣
1.判斷是否有輸入值,Yes ->把字串裝入Array
2.判斷array有值的位置再加入and字串及最前面的where
這樣可以組合成一個查詢語法
但這樣的話該如何加入參數的值呢? 最後combobox的NULL問題也未解決;
查MSDN好像也沒看到,
我想是自己邏輯上的問題吧= ="
各位先進能夠指導一下嗎T_T
先謝謝各位~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.195.36.64
1F:→ pico2k:這個狀況下,你不能用參數化查詢 06/07 15:58
2F:→ melvinlee:您好~那請問我該從哪邊下手比較好?用後者的方法去做嗎? 06/07 16:23
3F:→ melvinlee:是不是只能先判斷欄位有無值後再串接字串,然後不使用 06/07 16:32
4F:→ melvinlee:參數化查詢~? 06/07 16:32
5F:→ pico2k:yes 06/07 19:23