日期:2014-05-17  浏览次数:20372 次

为什么这个循环都不返回结果,怎样才可以有返回?
protected DataTable hui = new DataTable(); 
 protected void Page_Load(object sender, EventArgs e)
  {
  //na = dat();
  for (int i = 0; i < na.Rows.Count; i++)
  {
  int sID = Convert.ToInt32(na.Rows[i]["ID"].ToString());
  hui = hut(sID);
  }
  }
 protected static DataTable hut(int sID)
  {
  SqlDataAdapter dar = sql.SdaOpen("select * from hui where faID = " + sID);
  DataSet s = new DataSet();
  dar.Fill(s, "a");
  return s.Tables["a"];
  }

------解决方案--------------------
for (int i = 0; i < na.Rows.Count; i++)
{
int sID = Convert.ToInt32(na.Rows[i]["ID"].ToString());
hui = hut(sID);
}

这个循环,hui最后只得到一条数据,而且是最后一条。


------解决方案--------------------
探讨

引用:
for (int i = 0; i < na.Rows.Count; i++)
{
int sID = Convert.ToInt32(na.Rows[i]["ID"].ToString());
hui = hut(sID);
}

这个循环,hui最后只得到一条数据,而且是最后一条。

按照你这个循环的思想,你应该把hui声明成dataset类型,dataset中有添加datatable的方法。你看看吧

怎样改才可以循环全部的

------解决方案--------------------
DataTable hui 每次循环都被覆盖掉。
最后返回的是最后一个sID 得到的sID

应该得把每次得到的DataTable 累加起来。


protected DataTable hui = new DataTable();
 protected void Page_Load(object sender, EventArgs e)
{
//na = dat();
for (int i = 0; i < na.Rows.Count; i++)
{
int sID = Convert.ToInt32(na.Rows[i]["ID"].ToString());
DataTable newTable= hut(sID);
hui.Merge(Merge);
}
}