为什么在同一个方法中,多个DataSet 依次获取不同的数据后,所有的DataSet的数据都是最后依次查询的数据?

看以下代码://查询的数据DataSetdqds=d.GetDt(stime,etime,stationids);DataTabledqdata=dqds.Tables[... 看以下代码:
//查询 的数据
DataSet dqds = d.GetDt(stime, etime, stationids);
DataTable dqdata = dqds.Tables[0];
//对比的数据
DataSet dbds = d.GetDt(stime.AddYears(cyear), etime.AddYears(cyear), stationids); //在执行了这句代码之后,dqds 的数据就和dbds的数据一样,dqdata的数据都和dbds.Tables[0];的数据一样,这让我咋个办?
DataTable dbdata = dbds.Tables[0];
展开
 我来答
youbl
2012-09-08 · TA获得超过2510个赞
知道大有可为答主
回答量:1844
采纳率:62%
帮助的人:1673万
展开全部
从你帖的代码,可以看出来,
d.GetDt返回的DataSet都是同一个实例,猜想这个d的代码应该是这样的
public class dClass{
DataSet ds = new DataSet();
public GetDt(参数){
填充ds
return ds;
}
}

这样你每次调用GetDt方法,都会覆盖到前面的DataSet内容
建议把new DataSet放到方法内部
非典型天秤座
2012-09-07 · TA获得超过1395个赞
知道大有可为答主
回答量:850
采纳率:0%
帮助的人:1355万
展开全部
这个。。。你是从哪里看出一样的?
并确认下cyear看看是不是0.

如果没什么问题,可以调试一下:
GetDt方法里,建立SQL语句那块加个断点,然后分别执行这两种方法,看看每次生成的SQL是否是一样的?如果不一样,把两次的SQL都拿到查询分析器里去执行以下,看结果是否相同。
更多追问追答
追问
很容一就看出来了啊,调试的时候这几句代码都打了断点,执行一句就看一次他的数据据啊,开是dqds的数据的时间是2012年,执行完下面那句之后,dbds的数据为2011年的,dqds的数据也是2011年的了,
追答
GetDt方法里,建立SQL语句那块加个断点,然后分别执行这两种方法,看看每次生成的SQL是否是一样的?

应该在GetDt方法里打断点,看看dqds和dbds执行的时候发生了什么事情。。。传递进来的时间参数分别是什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yi_mzy
2012-09-07 · 超过34用户采纳过TA的回答
知道答主
回答量:143
采纳率:0%
帮助的人:65.5万
展开全部
如果你说这两个dataSet是一样的话, 那只能说明要不你的传参是一样,要不就是你的方法是一样
追问
我在问题里面不是说了吗,查询出来的数据是最后依次查询的数据,我前面和后面查询出来的数据是不一样的,前面查询出来的是2012年的数据,后面查询出来的数据是2011年的数据,结果装前面2012年数据的DataSet 的数据也变成2011的数据了,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式