加载后DataTable不包含任何行

时间:2016-02-04 14:10:57

标签: c# asp.net .net ado.net

我正在尝试使用SQLDataReader加载DataTable但是它显示它没有行。我检查读者,看看它是否与while循环一致,并且它是正确的,这意味着数据已从数据库中检索到:

NpgsqlConnection sqlcon = new NpgsqlConnection(ConnectionString);
NpgsqlCommand sqlquerry = new NpgsqlCommand(sqlcmd, sqlcon);
sqlcon.Open();

NpgsqlDataReader reader = sqlquerry.ExecuteReader();

int i = 0;
while (reader.Read())
{
    i++;
}
DataTable dt = new DataTable();
dt.Load(reader);

var count = dt.Rows.Count;

1 个答案:

答案 0 :(得分:3)

您应该决定:您是否正在使用重复读取数据加载器并在循环while (reader.Read())中手动填充表格,或者您使用DataTable方法填充Load datareader,但不是两种选择同时。

事实上,你的循环"清空" datareader但没有任何用处,因此完成后无需加载。最简单的解决方案 - 只是删除这个循环。