我正在尝试使用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;
答案 0 :(得分:3)
您应该决定:您是否正在使用重复读取数据加载器并在循环while (reader.Read())
中手动填充表格,或者您使用DataTable
方法填充Load
datareader,但不是两种选择同时。
事实上,你的循环"清空" datareader但没有任何用处,因此完成后无需加载。最简单的解决方案 - 只是删除这个循环。