天天看點

資料庫開發及ADO.NET(38)——SqlDataAdapter&資料集-查詢多行、DataSet二、DataSet

資料庫開發及ADO.NET(38)——SqlDataAdapter&資料集-查詢多行、DataSet二、DataSet

二、DataSet

1、SqlDataReader是連接配接相關的, SqlDataReader中的查詢結果并不是放到程式中的,而是放在資料庫伺服器中,SqlDataReader隻是相當于放了一個指針(遊标),隻能讀取目前遊标指向的行,一旦連接配接斷開就不能再讀取。這樣做的好處就是無論查詢結果有多少條,對程式占用的記憶體都幾乎沒有影響。

2、SqlDataReader對于小資料量的資料來說帶來的隻有麻煩,優點可以忽略不計。ADO.Net中提供了資料集的機制,将查詢結果填充到本地記憶體中,這樣連接配接斷開、伺服器斷開都不影響資料的讀取。

3、代碼示例:

DataSet dataset = new DataSet(); 
SqlDataAdapter adapter = new SqlDataAdapter(cmd); 
adapter.Fill(dataset);//Fill()執行查詢語句,将資料裝入資料集
           

(1)Fill()執行查詢語句,将資料裝入資料集。

(2)SqlDataAdapter  da=new  SqlDataAdaper(sqlStr,conn);  //建立擴充卡對象,告訴它要做什麼,走哪條路去。

(3)DataSet  ds=new  DataSet();  //建立資料集對象(程式端的臨時資料庫)。

(4)da.Fill(ds);  //調用fill方法,填充資料集。(先去資料庫查詢結果集,并把結果集傳回指派給資料集)。

4、SqlDataAdapter是DataSet和資料庫之間溝通的橋梁。資料集DataSet包含若幹表DataTable,DataTable包含若幹行DataRow。

foreach (DataRow row in dataset.Tables[0].Rows) row["Name"]
           

5、擴充卡擷取的資料集中可能會有多個資料表。