2016-01-21 75 views
0

我有一个GridView的这filteration是project_iddatevehicle_no查询不过滤数据正确

的基础上,但我的查询不正确过滤。

的问题是: -

  1. 如果我过滤对于今天的日期,检查,记录不显示和数据,这是完全正确的。

  2. 但是,如果过滤器为exact date,project_idvehicle_no它应该显示一条记录。但它仍然没有显示任何记录。

以下是我对过滤的查询。

strquerry = "SELECT DISTINCT sv.mkey, vehicle_no, TO_CHAR (date_in, 'dd/MM/yyyy') || ' & ' || time_in vehicleindate_time, TO_CHAR (date_out, 'dd/MM/yyyy') || ' & ' " + 
      "|| time_out vehicleoutdate_time, gate_no_in || ' & ' || gate_no_out ingate_outgateno, gd.good_type goods_type, net_weight netweight, TO_CHAR (challan_date, 'dd/MM/yyyy') " + 
      "|| ' & ' || challan_no challandate_no,remark_in remarkin, NULL receipt_no, date_in FROM xxcus.xxgid_supinv sv, xxcus.xx_supinv_goodtype gd, " + 
      "xxcus.xxacl_xxgid_user_mst ms WHERE (gd.good_type_code(+) = sv.good_type) AND " + 
      "(sv.project_id = '" + cmbProjectName.SelectedValue + "' AND TO_CHAR (date_in, 'dd/MM/yyyy') = '" + txtExpCal.Value + "' OR vehicle_no = '" + ddlVehicleno.SelectedValue + "') ORDER BY date_in DESC, vehicle_no"; 

UPDATE

真正的查询调试

SELECT DISTINCT sv.mkey, vehicle_no, 
       TO_CHAR (date_in, 'dd/MM/yyyy') 
      || ' & ' 
      || time_in vehicleindate_time, 
       TO_CHAR (date_out, 'dd/MM/yyyy') 
      || ' & ' 
      || time_out vehicleoutdate_time, 
      gate_no_in || ' & ' || gate_no_out ingate_outgateno, 
      gd.good_type goods_type, net_weight netweight, 
       TO_CHAR (challan_date, 'dd/MM/yyyy') 
      || ' & ' 
      || challan_no challandate_no, 
      remark_in remarkin, NULL receipt_no, date_in 
     FROM xxcus.xxgid_supinv sv, 
      xxcus.xx_supinv_goodtype gd, 
      xxcus.xxacl_xxgid_user_mst ms 
     WHERE (gd.good_type_code(+) = sv.good_type) 
     AND (  sv.project_id = '1368' 
       AND TO_CHAR (date_in, 'dd/MM/yyyy') = '19-09-2015' 
      OR vehicle_no = '29' 
      ) 
    ORDER BY date_in DESC, vehicle_no 
+0

是oracle还是mysql?编辑问题并留下正确的标记(看起来像oracle是正确的) – StanislavL

+0

@StanislavL:我的错误,是的,它是oracle。任何帮助? – BNN

+0

控件的真实价值是什么?填补空白后调试并发布真正的查询字符串。顺便说一句,它是SQL注入漏洞。最好使用参数化查询而不是串接值。 – StanislavL

回答

1

后的问题是TO_CHAR (date_in, 'dd/MM/yyyy') = '19-09-2015'

您转换日期使用/定界符但是从参数日期有-分隔符。

更改为TO_CHAR (date_in, 'dd-MM-yyyy')

+0

但是当我从日历中选择日期以'21/01/2016'格式,这不会是一个问题吗? – BNN

+0

我对你的日历一无所知。从您发布的查询中获得格式 – StanislavL

+0

我的日历是'obout'日历。 ' ' – BNN