2011-12-08 13 views
0

我理解的SqlDataAdapter填充方法,這需要像startRecord,MaxRecord參數的查詢,如下圖所示 -SQLDataAdapter Fill方法如何觸發數據庫查詢?

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

我想知道會出現什麼SqlDataAdapter的事。

它會首先啓動將從表中取回整條記錄的查詢,然後從它中取出行嗎?

將其解僱在數據庫中查詢只會選擇行所需的量?

回答

0

sqlDataAdapter.Fill(dataSet, currentIndex, pageSize, "TableName");將整個結果集查詢,然後頁它們在內存中。

對於較大的結果集,這不是你想要的。如果您希望在服務器上進行分頁,請在您使用的SQL中使用SKIP和TOP子句。

Here是解釋這一點的文檔。

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); 
+0

那麼,sqladapter會發射什麼樣的查詢呢? – Dinu

+0

sqladapter是一組命令和連接,用於填充數據集... – AnandMohanAwasthi

+0

因此,sqladapter將會發射什麼查詢?它會觸發將帶來整行數據的查詢嗎?還是它會觸發一個只能獲得選定行的查詢? – Dinu