之前做了一个数据处理的公共类DbHelper,里面包含了最基本的对数据库的处理方法。其他类只需调用就可以了。但对于根据ID获取某组数据的情况,不知道用Dataset好还是Reader好,这两种方法都可以获得Select * from xxx where ID=@ID之类的单条数据,然后将这组数据按字段给asp.net控件赋值。
1、DataSet的实现方法
DataSet ds= DbHelper.ExecuteQuery(sq,param);
if(ds.Tables[0].Rows.Count>0)
{
//用ds.Tables[0].Rows[0]["xxxx"]向控件赋值
}
2、Reader的实现方法
OleDbDataReader reader = DbHelper.ExecuteAndReturnReader(sql, param);
if (reader.Read()){
//用reader["xxxx"]并赋值
reader.Close();//关闭reader
}
然后不知道哪种方法用起来速度更快,于是自己写了一个测试页面,专门用这两种方法分别调出数据并赋值测试,比较它们的用时。先是在个人电脑的IIS上测试,后来上传到虚拟主机上测试。得到的结论是:两者的速度相差不多,在个人电脑上,DataSet的速度更占优势,而在虚拟主机上,Reader的速度表现胜出。
个人电脑的测试结果: