2017-02-27 95 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

我添加了图片。 –