把dataset作为参数传递,急啊!!!!

hm66884422 2010-01-08 10:02:29
从数据库中查询的结果放到DataSet1中,但是我要通过DataSet1中的ID字段查询另一个表中的数据放到DataSet2中,可是我直接把参数传到GetSource(DataSet1)中,GetSource()返回的DataSet2是NULL,怎么才能传递呢??

很着急,各位前辈们帮忙看看!!
...全文
240 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hm66884422 2010-01-08
  • 打赏
  • 举报
回复
谢谢各位啊,我还是弄最简单的吧,按8楼哥们给的意见改,
kensouterry 2010-01-08
  • 打赏
  • 举报
回复
可以啊,在DataSet GetSource(DataSet1)里面去处理,例如:
DataSet GetSource(DataSet1)
{
DataSet dataSet2;
//将所有需要的id存放到里面
List<ID> list=DataSet1中的所有ID
//对数据库再次查询得到dataSet2
dataSet2=。。。。。
return dataSet2;
}

既然DataSet1中的数据和DataSet2有关联的话,在返回最终结果的时候可以采用联合查询来直接返回DataSet2(如果DataSet1仅仅作为一个中间变量的话!)
dapsxianfeng2010 2010-01-08
  • 打赏
  • 举报
回复
建议你重新new一个dataset代码里看不出什么问题,你看看你dataset是在什么位置实例化的吧,追踪下dataset吧从头好好跟踪一下
hm66884422 2010-01-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xr396464010 的回复:]
你要通过DataSet1 获取DataSet2 的内容 ,那DataSet1 中肯定有个字段或外键跟DataSet2相对应的呀,ID什么的,你取出这个值传过去,也没必要传整个DataSet1 呀除非你有别的目的。。
[/Quote]

我是想根据临时表的信息查询100条ZKLSH,然后再根据ZKLSH查询另一张表里对应的100条信息
hm66884422 2010-01-08
  • 打赏
  • 举报
回复
//这个方法是用来把临时表里的数据查出,以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;
}
xr396464010 2010-01-08
  • 打赏
  • 举报
回复
你先把DataSet1 中的ID取出来,看有没有值,如果有值就传给DataSet2 就一个ID你传整个DataSet1 干什么,这样不太好吧。。
xr396464010 2010-01-08
  • 打赏
  • 举报
回复
你要通过DataSet1 获取DataSet2 的内容 ,那DataSet1 中肯定有个字段或外键跟DataSet2相对应的呀,ID什么的,你取出这个值传过去,也没必要传整个DataSet1 呀除非你有别的目的。。
wuhq030710914 2010-01-08
  • 打赏
  • 举报
回复
select * from A where id in(select id from B where ......)
mjyangyang 2010-01-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 liaolian9948 的回复:]
这个问题简单啊。。自己断点设置一下。。看下哪里没数据了。。就知道哪里出错啦。
[/Quote]
自己调试确实很有用
liaolian9948 2010-01-08
  • 打赏
  • 举报
回复
这个问题简单啊。。自己断点设置一下。。看下哪里没数据了。。就知道哪里出错啦。
dapsxianfeng2010 2010-01-08
  • 打赏
  • 举报
回复
你把代码贴出来啊,这样看不出问题的原因啊,这个问题应该很简单,你看看是不是你哪个地方出现了异常,还有看看你的dataSet2有没有实例化成功
Return门徒 2010-01-08
  • 打赏
  • 举报
回复
你想怎么个传方法,要是方法间传直接传不就得了~!
  • 打赏
  • 举报
回复
GetSource 方法代码贴出来看看啊
不懂装懂 2010-01-08
  • 打赏
  • 举报
回复
什么意思?...dataset2也直接从数据库中查不就得了

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧