2017-02-27 56 views
1

請看我的照片。我有store.And我想在我的商店搜索(過濾器)。 「Hrubka是英文 「厚度」如何使用BETWEEN的SQL語句?

這些代碼的工作對我來說:

  using (SqlDataAdapter dr = new SqlDataAdapter(" select * from tab_sklad where SMENA LIKE '%" + txt_smena_sklad_filter.Text + 
       "%'and DATUM LIKE '%" + txt_datum_sklad_filter.Text + 
       "%'and DODAVATEL LIKE '%" + cmb_firma_sklad_filter.Text + 
       "%'and CISLO_PALETY LIKE '%" + txt_paleta_sklad_filter.Text + 
       "%'and HRUBKA LIKE '%" + txt_hrubka_sklad_filter.Text + 
       "%'and KVALITA LIKE '%" + cmb_kvalita_sklad_filter.Text + 
       "%'and DRUH LIKE '%" + cmb_druh_sklad_filter.Text + 

       "%'", cn)) 
      { 

,但我想添加搜索 「自爲」:列 「H」

示例:

之間

從40至50 Image

printscreen mycode

enter image description hereenter image description here

+0

「不工作」 是沒有問題的描述。它會拋出一個錯誤嗎?什麼是錯誤信息?它會返回意外的結果嗎?你能指望什麼?它實際上返回了什麼?顯示一些示例數據。 – HoneyBadger

+0

MôjpríkazSQL je zle,chcem ciciakdátavúdajovámriežkatextboxs。請看我的照片。 –

回答

3

在一般情況下,當你正在構建查詢,應打印查詢。那麼這個錯誤可能很明顯。

在繼續之前,我還想指出你應該使用參數化查詢。這與您的問題無關,但這是最佳做法。

你的最後一個條件是:

HRUBKA BETWEEN VALUES'%" + txt_sklad_od.Text "%'AND'% " + txt_sklad_do.Text+"'" 

您正在使用的比較值百分號並在一個不合適的地方關鍵字VALUES。我懷疑你打算進行某種野生梳理,例如使用LIKE,但這不是那種工作方式。對於當前的查詢結構,你會去掉百分號:

HRUBKA BETWEEN '" + txt_sklad_od.Text "' AND '" + txt_sklad_do.Text+"'" 
+0

我添加了下一張圖片,我的SQL語句是錯誤的。 –

+0

首先使用BETWEEN進行通配符的使用是什麼?聽起來對我來說很重要,是不是隻有我? 更多,使用像這樣的文本框... SQL注入發現! – Lostblue

+0

我添加了圖像。 –

0

使用@Gordon Linoff答案,我希望更多的編輯添加到您的代碼。

您的代碼不是「注射安全」(check SQL Injection here)。我也不明白在這裏使用BETWEEN ...是HRUBKA有多少字段? (整型,浮點,數字等)

如果HRUBKA是一個數字它會像:

double sklad_od = 0, sklad_do = 0; 
using (SqlDataAdapter dr = new SqlDataAdapter(" select * from tab_sklad " 
     "where SMENA LIKE '%" + String.IsNullOrEmpty(txt_smena_sklad_filter.Text) ? "'" : (txt_smena_sklad_filter.Text.Replace("'", "''") + "%'") + 
     " and DATUM LIKE '%" + String.IsNullOrEmpty(txt_datum_sklad_filter.Text) ? "'" : (txt_datum_sklad_filter.Text.Replace("'", "''") + "%'") + 
     " and DODAVATEL LIKE '%" + String.IsNullOrEmpty(cmb_firma_sklad_filter.Text) ? "'" : (cmb_firma_sklad_filter.Text.Replace("'", "''") + "%'") + 
     " and CISLO_PALETY LIKE '%" + String.IsNullOrEmpty(txt_paleta_sklad_filter.Text) ? "'" : (txt_paleta_sklad_filter.Text.Replace("'", "''") + "%'") + 
     " and HRUBKA LIKE '%" + String.IsNullOrEmpty(txt_hrubka_sklad_filter.Text) ? "'" : (txt_hrubka_sklad_filter.Text.Replace("'", "''") + "%'") + 
     " and KVALITA LIKE '%" + String.IsNullOrEmpty(cmb_kvalita_sklad_filter.Text) ? "'" : (cmb_kvalita_sklad_filter.Text.Replace("'", "''") + "%'") + 
     " and DRUH LIKE '%" + String.IsNullOrEmpty(cmb_druh_sklad_filter.Text) ? "'" : (cmb_druh_sklad_filter.Text.Replace("'", "''") + "%'") + 
     (double.TryParse(txt_sklad_od.Text, out sklad_od) && double.TryParse(txt_sklad_do.Text, out sklad_do) ? (" and HRUBKA BETWEEN " + sklad_od + " AND " + sklad_do) : "") + 
     " ", cn)) 

否則:

using (SqlDataAdapter dr = new SqlDataAdapter(" select * from tab_sklad " 
     "where SMENA LIKE '%" + String.IsNullOrEmpty(txt_smena_sklad_filter.Text) ? "'" : (txt_smena_sklad_filter.Text.Replace("'", "''") + "%'") + 
     " and DATUM LIKE '%" + String.IsNullOrEmpty(txt_datum_sklad_filter.Text) ? "'" : (txt_datum_sklad_filter.Text.Replace("'", "''") + "%'") + 
     " and DODAVATEL LIKE '%" + String.IsNullOrEmpty(cmb_firma_sklad_filter.Text) ? "'" : (cmb_firma_sklad_filter.Text.Replace("'", "''") + "%'") + 
     " and CISLO_PALETY LIKE '%" + String.IsNullOrEmpty(txt_paleta_sklad_filter.Text) ? "'" : (txt_paleta_sklad_filter.Text.Replace("'", "''") + "%'") + 
     " and HRUBKA LIKE '%" + String.IsNullOrEmpty(txt_hrubka_sklad_filter.Text) ? "'" : (txt_hrubka_sklad_filter.Text.Replace("'", "''") + "%'") + 
     " and KVALITA LIKE '%" + String.IsNullOrEmpty(cmb_kvalita_sklad_filter.Text) ? "'" : (cmb_kvalita_sklad_filter.Text.Replace("'", "''") + "%'") + 
     " and DRUH LIKE '%" + String.IsNullOrEmpty(cmb_druh_sklad_filter.Text) ? "'" : (cmb_druh_sklad_filter.Text.Replace("'", "''") + "%'") + 
     " and HRUBKA LIKE '%" + String.IsNullOrEmpty(txt_sklad_do.Text) ? "'" : (txt_sklad_do.Text.Replace("'", "''") + "%'") + 
     " ", cn)) 
+0

我添加了圖片。 –