【发布时间】:2010-09-09 14:36:52
【问题描述】:
我想用来自 SQL 的表数据填充一个网格视图。我尝试只返回我的 SqlDataReader 对象并将其用作我的数据源,但我收到阅读器已关闭的错误。我想将其转换为 DataSet 并返回一个数据集,但我找不到将行数据转换为数据集的简单方法。我还读到 DataSet 在 .NET 3.5/4.0 中已死,这是真的吗?
这是我的数据层方法。如果我能返回一些可用作数据源的东西,那就太棒了:
public SqlDataReader GetSites()
{
SqlConnection sqlCon = null;
SqlDataReader rdr = null;
try
{
sqlCon = new SqlConnection(StoredProcedures.conString);
sqlCon.Open();
SqlCommand cmd = new SqlCommand("GetSites", sqlCon);
cmd.CommandType = CommandType.StoredProcedure;
rdr = cmd.ExecuteReader();
return rdr;
}
finally
{
if (sqlCon != null)
{
sqlCon.Close();
}
//if (rdr != null)
//{
// rdr.Close();
//}
}
}
【问题讨论】:
-
是的,您正在 finally 语句中关闭数据读取器。