ADO.NET问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 08:35:54
我的问题如下:
关于DataReader和DataAdapter/DataSet
既然 这两套类都可以对数据库进行访问和修改
那在什么时候用哪一套比较合适呢

还有:
使用DataAdapter对象时,能根据需要自动打开和关闭连接
怎么理解这一句话!

希望能得到满意的回答!

好吧,这么有兴趣,希望可以帮助你,呵呵:
DataReader是建立在数据库连接状态下,对你所要操作的数据库表结构(数据表)进行的只读取的一个对象,也就是说,如果你需要读取出数据库里表里面的数据的时候,可以用DataReader,用它返回值类型的Read()方法读取数据,例如
SqlDataReader reader = cmd.ExecuteReader();
if(reader.Read())
{
textBox1.text=reader["字段名"].ToString();
}
因为读取到的是一个Object类型的,所以需要转化成为与赋值"="号前面一样的字符串类型。它只是读取,不做修改;
关于DataAdapter/DataSet,这两个通常用的时候是在一起的,它们的作用就好比是一个临时的加工处,这么说吧:数据库好比是企业的一个原料仓库,那么DataAdapter/DataSet就等于工厂加工原料的地方。DataAdapter/DataSet在一次连接数据库之后,将查询到的数据临时保存在内存当中,因此,当你断开数据库连接的时候,只要你的计算机不关机断电,DataAdapter/DataSet当中还是会有你从数据库提取出来的记录的。通常DataAdapter/DataSet只需要获得一个连接,是不需要指定关闭的,如果需要将DataAdapter/DataSet中你操作过的数据提交到数据库,进行数据更新的话,只需要用到SqlCommondBuilder自动创建更行语句进行Update()就OK了。
讲得估计绕了点,呵呵,希望可以帮助你~

DataReader访问数据库中的表时是只能向下移动的,内存中每次只占用一条记录,所以非常节约资源。而且有时你也需要一条一条进行判断或取值。
DataAdapter/DataSet 是把整个表(或部分记录)一次性的提取出来,占用资源比较大。
可以根据情况选择这两种,另外DataReader给数据源的时候好像不能数据库进行修改吧。

在我看来DataAdapter就是用来向把表绑到datag