清清楚楚asp.net ( 十 ) : ADO.NET之DataAdapter/DataSet

來源:互聯網
上載者:User

一.DataSet

Dataset是非串連資料訪問的核心。是一種資料容器。

Dataset包含兩類重要的元素:

1.零個或者多個關係(Relation)的集合 

2.零個或者多個表格(DataTable)的集合

DataTable可以通過尋找特定行來減少與資料庫的互動次數。

從DataTable中尋找特定行:

1 DataRow[] matchRows = ds.Table["Products"].Select("class=34") 

每個DataTable又包含以下元素:

1.行集合

2.子關係集合

3.列集合

4.父關係集合

5.列集合

6.DefaultView

GridView等資料來源可以是DataSet、DataTable、DataView等。

在GridView以DataView作為資料來源的時候,可以通過DataView.Sort和DataView.RowFilter來設定排序的條件式篩選(見下例)。

二.DataAdapter

DataAdapter是資料來源和Dataset的橋樑。

DataAdapter的主要方法:

1.Fill()

2.FillSchema()

執行SelectCommand中的查詢,但只擷取架構資訊。利用列名,資料類型,主鍵和約束關係等預配置DataTable。

3.Update()

檢查DataTable中的變化,並執行適當的InsertCommand,UpdateCommand,DeleteCommand操作為資料來源執行批次更新。

 

三.資料從資料庫到DataSet的過程

1.Connection對象通過連接字串建立與資料庫的連結。

2.設定Command對象的Connection,CommandText,CommandType屬性

3.設定DataAdapter的SelectCommand,InsertCommand,UpdateCommand,DeleteCommand等屬性

4.調用DataAdapter對象的Fill方法將DataAdapter的SelectCommand執行的查詢資料填充進DataSet

調用DataAdapter對象的update方法執行資料的更新操作。


四.DataAdapter和DataSet聯合使用一個例子

C# 1  protected void BindGridView()
 2     {
 3         string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["MyDemo"].ConnectionString;
 4         SqlConnection conn = new SqlConnection(connStr);
 5         SqlCommand com = new SqlCommand("SELECT * FROM Productions", conn);
 6 
 7         SqlDataAdapter da = new SqlDataAdapter(com);
 8         DataSet ds = new DataSet();
 9         da.Fill(ds, "Productions");
10 
11         DataColumn ComputedColumn = new DataColumn("ComputedColumn", typeof(int), "ProductionID+CategoryID");
12         ds.Tables["Productions"].Columns.Add(ComputedColumn);
13 
14         DataView dv1 = ds.Tables["Productions"].DefaultView;
15 
16         DataView dv2 = new DataView(ds.Tables["Productions"]);
17         dv2.Sort = "CategoryID DESC , ProductionName ASC";
18 
19         DataView dv3 = new DataView(ds.Tables["Productions"]);
20         dv3.RowFilter="CategoryID > 1 AND LEN(ProductionName) > 5";
21 
22         this.GridView1.DataSource = dv1;
23         this.GridView2.DataSource = dv2;
24         this.GridView3.DataSource = dv3;
25 
26         this.DataBind();
27     }

 

清清楚楚asp.net系列學習部落格目錄 

 

參考資料:Pro ASP.NET 3.5 in C# 2008

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.