我有一个查询来理解SQLDataAdapter填充方法,该方法接受如startRecord,MaxRecord之类的参数,如下所示 -
SqlDataAdapter adap = new SqlDataAdapter ("Select * from tblname",ConnectionString);
DataSet ds = new DataSet();
adap.Fill(ds, startIndex, MaxRecords , "TableName");
我想知道SqlDataAdapter会做什么。
它会首先触发查询,该查询会从表中返回整个记录,然后从中提取行吗?
或
它会在数据库中触发一个只选择所需行数的查询吗?
答案 0 :(得分:0)
SqlDataAdapter充当DataSet和SQL Server的桥梁,用于检索和保存数据。 当SqlDataAdapter填充DataSet时,它将为返回的数据创建必要的表和列(如果它们尚不存在)。
这段代码可以让您更好地理解
string sqlStatement = "Select * from tblname ";
SqlCommand cmd = new SqlCommand(sqlStatement, con);
DataSet ds = new DataSet();
SqlDataAdapter adap = new SqlDataAdapter(cmd);
cmd.ExecuteNonQuery();
adap.Fill(ds);
答案 1 :(得分:0)
sqlDataAdapter.Fill(dataSet, currentIndex, pageSize, "TableName");
将查询整个结果集,然后将它们分页到内存中。
对于大型结果集,这不是您想要的。如果要在服务器上进行分页,请使用您使用的SQL中的SKIP和TOP子句。
Here是解释此问题的文档。