[問題] 關於SQL使用參數化查詢,combobox.selectItem.ToString()

看板C_Sharp作者 (Melvin)時間15年前 (2010/06/07 07:36), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
各位先進好: 日前碰到關於查詢的問題, 我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

06/07 15:58, , 1F
這個狀況下,你不能用參數化查詢
06/07 15:58, 1F

06/07 16:23, , 2F
您好~那請問我該從哪邊下手比較好?用後者的方法去做嗎?
06/07 16:23, 2F

06/07 16:32, , 3F
是不是只能先判斷欄位有無值後再串接字串,然後不使用
06/07 16:32, 3F

06/07 16:32, , 4F
參數化查詢~?
06/07 16:32, 4F

06/07 19:23, , 5F
yes
06/07 19:23, 5F
文章代碼(AID): #1C3A68iq (C_Sharp)