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

Reader值放进Datatable的问题。
下面是我的代码:  
using (SqlCommand command = new SqlCommand(sqlcmd, con))
  {
  DataTable dt = new DataTable();
  try
  {
  if (con.State != ConnectionState.Open) { con.Open(); }
  using (SqlDataReader reader = command.ExecuteReader())
  {
  dt.Load(reader);
  return dt;
  }
  }
  finally
  {
  if (con.State == ConnectionState.Open) { con.Close(); }
  }
  }
目前知道出问题的地方是dt.Load(reader);这一句。但是不知道为什么,reader里面的值存不到datatable里面去。

------解决方案--------------------
dataTable.Load(DataTableReader)
------解决方案--------------------
是不是要dt.Fill(reader).
------解决方案--------------------
C# code

用sqlDataAdapter 
和dataset
来填充

------解决方案--------------------
仅这段代码应该没错,可能别的代码有错。会不会select出0条记录?
------解决方案--------------------
探讨

是不是要dt.Fill(reader).

------解决方案--------------------
using (SqlCommand command = new SqlCommand(sqlcmd, con))
{
DataTSet ds = new DataTable();
try
{
if (con.State != ConnectionState.Open) { con.Open(); }
using (SqlDataReader reader = command.ExecuteReader())
{
reader.Fill(ds,"aa");
return ds;
}
}
finally
{
if (con.State == ConnectionState.Open) { con.Close(); }
}
}


用DataSet.Tables[0] 或者DataSet.Tables["aa"]就是你想要的dt

------解决方案--------------------
这行打错了

是DataSet ds = new DataSet();