是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比较多
------解决方案--------------------和数据库的选用有关么?