黑马程序员技术交流社区
标题: DataReader和DataSet的异同? [打印本页]
作者: 胡盼盼 时间: 2013-9-3 10:55
标题: DataReader和DataSet的异同?
DataReader和DataSet操作数据库的时候使用,具体有什么区别,求详细
作者: 许庭洲 时间: 2013-9-3 11:05
1. DataReader对象是读取数据源的数据,只能将数据源的数据从头到尾依次读出,Sql server7.0或以上版本使用SqlDataReader,Oledb数据源使用OledbReader;
2. 数据集DataSet包含若干表DataTable, DataTable包含若干行 DataRow;
3. foreach(DataRow row in dataset.Tables[0].Rows) row["Name"]。
作者: 彭家贰小姐 时间: 2013-9-3 11:59
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”].
作者: 胡盼盼 时间: 2013-9-3 12:05
{:soso_e163:}O(∩_∩)O谢谢
作者: 胡盼盼 时间: 2013-9-3 12:08
O(∩_∩)O谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |