日期:2014-05-18  浏览次数:20737 次

为什么 Oracle.Helper.FillDataset执行的和直接PL/SQL里执行的不一样?
select V_XT_CSB.ID ID,
  V_XT_CSB.DM DM,
  V_XT_CSB.MC MC,
  DMQZ,
  ZYDW,
  V_XT_CSB.SFYX SFYX,
  QZLX,
  YWLB,
  XT_YWLBB.MC YWLBMC,
  DM_XZQHB.MC ZYDWMC
  FROM V_XT_CSB, XT_YWLBB , DM_XZQHB 
 WHERE V_XT_CSB.SFYX = '1'
  AND ZYDW = '320000'
  AND V_XT_CSB.YWLB = XT_YWLBB.DM(+)
  AND V_XT_CSB.ZYDW = DM_XZQHB.DM(+)
 order by V_XT_CSB.ID
以上在PL/SQL里执行是37行
用以下的执行就只有35行 sql就是上述的SQL语句,XTCSBdataSet.Tables[0].Rows.Count.ToString() 显示的是35
  using (OracleConnection cn = Common.ServerCommon.OpenConnection())
  {
  Oracle.Helper.FillDataset(cn, System.Data.CommandType.Text, sql, XTCSBdataSet, tablename);
  }

是什么原因呢?

------解决方案--------------------
不可能的,你检查下连接字符串,也许有2个数据库,你的数据来源不一样。
------解决方案--------------------
using (OracleConnection cn = Common.ServerCommon.OpenConnection())
{
Oracle.Helper.FillDataset(cn, System.Data.CommandType.Text, sql, XTCSBdataSet, tablename);
}

打断点看下 sql 变量!!!!!