从数据库中查询的结果放到DataSet1中,但是我要通过DataSet1中的ID字段查询另一个表中的数据放到DataSet2中,可是我直接把参数传到GetSource(DataSet1)中,GetSource()返回的DataSet2是NULL,怎么才能传递呢??很着急,各位前辈们帮忙看看!!

解决方案 »

  1.   

    什么意思?...dataset2也直接从数据库中查不就得了
      

  2.   

    GetSource 方法代码贴出来看看啊
      

  3.   

    你把代码贴出来啊,这样看不出问题的原因啊,这个问题应该很简单,你看看是不是你哪个地方出现了异常,还有看看你的dataSet2有没有实例化成功
      

  4.   

    select * from A where id in(select id from B where ......)
      

  5.   

    你要通过DataSet1 获取DataSet2 的内容 ,那DataSet1 中肯定有个字段或外键跟DataSet2相对应的呀,ID什么的,你取出这个值传过去,也没必要传整个DataSet1 呀除非你有别的目的。。 
      

  6.   

    你先把DataSet1 中的ID取出来,看有没有值,如果有值就传给DataSet2 就一个ID你传整个DataSet1 干什么,这样不太好吧。。 
      

  7.   

    //这个方法是用来把临时表里的数据查出,以DataSet类型返回
    public static DataSet GetTopNB(int count)
            {
                DataSet ds = new DataSet();
                string sql = "SELECT * FROM LGT_RY_NB_TEMP WHERE ROWNUM<=" + count + " AND STATUS=0 ORDER BY INSERT_DATE ASC";
                OracleDataAdapter orada = new OracleDataAdapter(sql, OracleHelper.Connection);
                orada.Fill(ds,"lsb");
                return ds;
            }
    // 第二个方法是根据临时表里查出来的ZKLSH字段当作条件查询另一个表中的数据
    public static DataSet GetInfo(DataSet ds)
            {
                string sql = "SELECT nb.zklsh,nb.xm,nb.xb,nb.mz,nb.csrq,nb.zjlx,nb.zjhm,nb.ssxq,nb.zz,nb.rzsj,nb.fh,nb.ldsj,nb.cjsj,zp.zp from LGT_RY_NB nb JOIN LGT_RY_NBZP zp ON nb.ZKLSH=zp.ZKLSH AND zp.ZKLSH='"+ds.Tables["lsb"].Rows[0]["ZKLSH"].ToString()+"'";
                OracleDataAdapter orada = new OracleDataAdapter(sql, OracleHelper.Connection);
                orada.Fill(ds, "info");
                return ds;
            }
      

  8.   


    我是想根据临时表的信息查询100条ZKLSH,然后再根据ZKLSH查询另一张表里对应的100条信息
      

  9.   

    建议你重新new一个dataset代码里看不出什么问题,你看看你dataset是在什么位置实例化的吧,追踪下dataset吧从头好好跟踪一下
      

  10.   

    可以啊,在DataSet GetSource(DataSet1)里面去处理,例如:
    DataSet GetSource(DataSet1)
    {
      DataSet dataSet2;
      //将所有需要的id存放到里面
      List<ID> list=DataSet1中的所有ID
      //对数据库再次查询得到dataSet2
      dataSet2=。。
      return dataSet2;
    }既然DataSet1中的数据和DataSet2有关联的话,在返回最终结果的时候可以采用联合查询来直接返回DataSet2(如果DataSet1仅仅作为一个中间变量的话!)