日期:2014-05-20  浏览次数:20765 次

是SqlDataReader还是dataset比较快速呢
只是读取信息然后循环处理,不用修改保存;数据量比较多,大概要生成相应的几万个文件

★★★有时候似乎reader快一些★★★
SqlCommand   sqlcom   =   new   SqlCommand();
sqlcom.CommandType   =   CommandType.Text;

sqlcom.CommandText   =   strSql
sqlcom.Connection   =   thisConnection;

SqlDataReader   objReader   =   sqlcom.ExecuteReader(CommandBehavior.CloseConnection);

while(objReader.Read())
{
    ......
}

★★★有时候dataset比reader还块★★★
SqlCommand   sqlcom   =   new   SqlCommand();
sqlcom.CommandType   =   CommandType.Text;

sqlcom.CommandText   =   strSql;
sqlcom.Connection   =   thisConnection;

SqlDataAdapter   sqlDA   =   new   SqlDataAdapter();
sqlDA.SelectCommand   =   sqlcom;

DataSet   objDataSet   =   new   DataSet();
sqlDA.Fill(objDataSet);

for(i   =0;i <objDataSet.Tables[0].Rows.Count;i++)
    {
        ......
    }

------解决方案--------------------
看情况。
如果数据要通过网络从数据库服务器传输到网页服务器,不用测试就知道是DataSet快
------解决方案--------------------
帮顶 !
------解决方案--------------------
while(objReader.Read())
{
......
}

for(i =0;i <objDataSet.Tables[0].Rows.Count;i++)
{
......
}
关键是这两个里面的处理是否复杂
sqlDA.Fill(objDataSet);
Fill方法的实现实际上还是用到了SqlDataReader
------解决方案--------------------
好像在那本书上看到过相关的论述,一时想不起来了,大概意思如果是本地数据库查询的话使用reader是比较合算的。
------解决方案--------------------
一般Reader要快,而且快的多!
------解决方案--------------------
万事都没有一个绝对,要看具体情况吧..

如果数据库服务器在本机,用DataReader是比较好的..

仅供参考..
------解决方案--------------------

我开始也认为DataReader要快很多,其实不是的!
DataReader好像有独占方式打开连接,所以,他连接数据库了,很多操作就被限制了;dataset据说是要慢,但是他切断式连接,而且循环遍历比较方便。
末了,dataset还能体现表之间的关系,很号用1
------解决方案--------------------
数据量大的话,不能用DataSet,因为DataSet是将数据都放到内存中,因此会占用大量内存;DataReader类似一个服务器端的游标,占用资源小。因此数据量大的时候,DataReader会快很多。
------解决方案--------------------
当然是单项数据集快,不过要看场合
单项数据集由于不用支持定位和内存缓冲,不需要生成游标,速度快多了。
------解决方案--------------------
当然是单项数据集快,不过要看场合

------解决方案--------------------
我觉得要看系统的架构。
------解决方案--------------------
个人认为 不在一个层上没可比性
------解决方案--------------------
用reader比较多
------解决方案--------------------
和数据库的选用有关么?