Informix中的SQL查询注意事项

来源:互联网 发布:什么是java技术 编辑:程序博客网 时间:2024/05/01 02:07

string sql = "SELECT ms.m01_item_no,pm.cust_po_no, pm.order_date as chcode  FROM po_request_mast pm,po_request_detail pd,edi_cust ec,mcust mc,shipto sh,  outer mstock ms ,outer stdcost std  WHERE pm.order_cntl_no = pd.order_cntl_no AND pm.cu_bill_to = ec.customer_code  AND ec.customer_code = mc.m06_bill_to AND sh.d08_bill_to = mc.m06_bill_to  AND sh.d08_cust_ship = pm.cu_ship_to AND ec.co_code = mc.m06_co AND pd.ac_product_no = ms.m01_item_no AND pd.ac_product_no = std.std_stk_item  AND pm.check_flag = ? AND ms.m01_brand in ('Acer','eMachines') ORDER BY pm.cust_po_no";

 

 

        using (EdiOrderAuditMgr mgr = new EdiOrderAuditMgr(false))

        {

 

            //DataTable dtResult = mgr.GetData(sql);

 

            OdbcParameter[] oParams = new OdbcParameter[1];

            oParams[0] = new OdbcParameter("status", "W");

            //oParams[1] = new OdbcParameter("brand", "'Acer','eMachines'");

            //oParams[1] = new OdbcParameter("brand", "'eMachines'");

            DataTable dtResult = mgr.GetData(sql, oParams);

 

            gdvContent11.DataSource = dtResult;

            gdvContent11.DataBind();

        }

 

 

如上所示:

以条件ms.m01_brand in ('Acer','eMachines') 查询没有问题;

但如果采用OdbcParameter方式传参,要注意:informix不支持 in

 

这个问题折磨了我大半天,总算找到原因了!