SqlDataReader render = cmd.ExecuteReader();
while(reader.Read())
{
Console.WriteLine(reader.GetString(1));
}
- 查询结果是放到数据库中,如果数据库服务器是单独的机器,则数据还没有到客户端,不占本地电脑内存.在服务器端有一个类似指针的东西,数据库那边先把结果放到一个地方,接着用指针指向查询结果的第一条数据之前(初始的时候指针没有指向任何一条数据)没调用一次Read指针就往下挪一格,只要它没有挪到最后一条数据之后那么它的返回值就是true,如果挪到了最后一条数据之后,则返回值就是false.
- SqlDataReader对于小数据量的数据来说带来的只有麻烦.ADO.Net中提供了数据集的机制,将查询结果填充到本地内存中,这样连接断开,服务器断开都不影响数据的读取.数据库的好处是降低数据库服务器压力,编程也简单.
DataSet dataset = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(dataset);
- DataSet包含若干表DataTable, DataTable包含若干行DataRow.
Foreach(DataRow row in dataset.Tables[0].Rows) row[“Name”].
|