0

我有一个关于了解 SQLDataAdapter 填充方法的查询,该方法采用 startRecord、MaxRecord 等参数,如下所示 -

SqlDataAdapter adap = new SqlDataAdapter ("Select * from tblname",ConnectionString);
DataSet ds = new DataSet();
adap.Fill(ds, startIndex, MaxRecords , "TableName");

我想知道 SqlDataAdapter 会做什么。

它会首先触发从表中带回整个记录的查询,然后从中过滤行吗?

或者

它会在数据库中触发一个只选择所需行数的查询吗?

4

2 回答 2

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);
于 2011-12-08T06:43:22.360 回答
0

sqlDataAdapter.Fill(dataSet, currentIndex, pageSize, "TableName");将查询整个结果集,然后将它们分页到内存中。

对于大型结果集,这不是您想要的。如果您希望在服务器上发生分页,请在您使用的 SQL 中使用 SKIP 和 TOP 子句。

是解释这一点的文档。

于 2011-12-08T09:09:10.440 回答