可能重复:
Is datareader quicker than dataset when populating a datatable?
public DataTable GetReviewsId(Objects myObjects)
{
DataTable tblBindReviews = new DataTable();
string Query = "";
try
{
Query = "select distinct ProductId from tblReview where ProductId in (select ProductId from tblProduct where R=0 and T=0)";
/*SqlConnection mySqlConnection = this.SetDatabaseConnection();
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(Query, mySqlConnection);
mySqlDataAdapter.Fill(tblBindReviews);*/
/*mySqlConnection.Open();
SqlCommand cmd = new SqlCommand(Query,mySqlConnection);
tblBindReviews.Load(cmd.ExecuteReader());*/
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
finally
{
this.ClosedatabaseConnection();
}
return tblBindReviews;
}
在上面的代码中,我编写了两种检索数据的方法(每种方法都在注释部分内),一种使用数据适配器,另一种使用datareader。哪两个会跑得更快?
答案 0 :(得分:3)
DataReader是最快的方式。 在任何情况下,DataAdapter都会更快,因为DataAdapter在内部使用DataReader并执行其他操作(与数据集一起使用多个表,.....)
答案 1 :(得分:1)
如果您执行select operations
,我建议您使用SqlDataReader
一次只在内存中有一条记录而不是整个结果集
与你在一次迭代中获得的速度一样快
允许您更快地开始处理结果
Nota:
使用SqlDataAdapter,您可以使用更多的内存,等到所有数据都被加载后再使用它们