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
这个问题折磨了我大半天,总算找到原因了!