青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Programmer's Cookbook

{C++ 基礎(chǔ)} {C++ 高級(jí)} {C#界面,C++核心算法} {設(shè)計(jì)模式} {C#基礎(chǔ)}

ADO。NET之dataview(六)

DataView 使您能夠創(chuàng)建 DataTable 中所存儲(chǔ)的數(shù)據(jù)的不同視圖,這種功能通常用于數(shù)據(jù)綁定應(yīng)用程序。使用 DataView,您可以公開(kāi)表中具有不同排序順序的數(shù)據(jù),并且可以按行狀態(tài)或基于篩選器表達(dá)式來(lái)篩選數(shù)據(jù)。

DataView 提供數(shù)據(jù)的動(dòng)態(tài)視圖,其內(nèi)容、排序和成員關(guān)系會(huì)實(shí)時(shí)反映對(duì)基礎(chǔ) DataTable 的更改。它不同于 DataTableSelect 方法,后者從表中按特定的篩選器和/或排序順序返回 DataRow 數(shù)組,雖然其內(nèi)容反映對(duì)基礎(chǔ)表的更改,但其成員關(guān)系和排序卻則保持靜態(tài)。DataView 的動(dòng)態(tài)功能使其成為數(shù)據(jù)綁定應(yīng)用程序的理想選擇。

與數(shù)據(jù)庫(kù)提供的視圖類(lèi)似,DataView 為您提供了可向其應(yīng)用不同排序和篩選條件的單個(gè)數(shù)據(jù)集的動(dòng)態(tài)視圖。但是,DataView 和數(shù)據(jù)庫(kù)視圖之間相當(dāng)不同的一點(diǎn)在于 DataView 不能作為表來(lái)進(jìn)行處理,并且不能提供聯(lián)接表的視圖。另外,還不能排除存在于源表中的列,也不能追加不存在于源表中的列(如計(jì)算列)。

可以使用 DataViewManager 來(lái)管理 DataSet 中所有表的視圖設(shè)置。DataViewManager 為您提供了一種方便的方法來(lái)管理每個(gè)表的默認(rèn)視圖設(shè)置。在將一個(gè)控件綁定到 DataSet 的多個(gè)表時(shí),綁定到 DataViewManager 是理想的選擇。

創(chuàng)建:

創(chuàng)建 DataView 的方法有兩種。可以使用 DataView 構(gòu)造函數(shù),也可以創(chuàng)建對(duì) DataTableDefaultView 屬性的引用。DataView 構(gòu)造函數(shù)可以為空,也可以通過(guò)單個(gè)參數(shù)的形式采用 DataTable 或者同時(shí)采用 DataTable 與篩選條件、排序條件和行狀態(tài)篩選器。
[C#]
DataView custDV = new DataView(custDS.Tables["Customers"],
                               "Country = 'USA'",
                               "ContactName",
                               DataViewRowState.CurrentRows);
DataView custDV = custDS.Tables["Customers"].DefaultView;

使用 DataView 對(duì)數(shù)據(jù)排序和篩選

DataView 提供了幾項(xiàng)用于對(duì) DataTable 中的數(shù)據(jù)進(jìn)行排序和篩選的功能:

  • 使用 Sort 屬性,您可以指定單個(gè)或多個(gè)列排序順序并包含 ASC(升序)和 DESC(降序)參數(shù)。
  • 可以使用 ApplyDefaultSort 屬性自動(dòng)以升序創(chuàng)建基于表的一個(gè)或多個(gè)主鍵列的排序順序。只有當(dāng) Sort 屬性為空引用或空字符串時(shí)以及表已定義主鍵時(shí),ApplyDefaultSort 才適用。
  • 使用 RowFilter 屬性,您可以根據(jù)行的列值來(lái)指定行的子集。有關(guān) RowFilter 屬性的有效表達(dá)式的更多信息,請(qǐng)參見(jiàn)有關(guān) DataColumn 類(lèi)的 Expression 屬性的參考信息。

    如果要返回對(duì)數(shù)據(jù)的特定查詢的結(jié)果(而不是提供數(shù)據(jù)子集的動(dòng)態(tài)視圖)以實(shí)現(xiàn)最佳性能,請(qǐng)使用 DataViewFindFindRows 方法,而不是設(shè)置 RowFilter 屬性。設(shè)置 RowFilter 屬性會(huì)使數(shù)據(jù)的索引被重新生成,從而增加應(yīng)用程序的系統(tǒng)開(kāi)銷(xiāo)并降低性能。最好將 RowFilter 屬性用于其中的綁定控件顯示篩選結(jié)果的數(shù)據(jù)綁定應(yīng)用程序。FindFindRows 方法會(huì)利用當(dāng)前的索引,而不需要重新生成索引。有關(guān) FindFindRows 方法的更多信息,請(qǐng)參見(jiàn)搜索 DataView

  • 使用 RowStateFilter 屬性,您可以指定要查看的行版本。DataView 根據(jù)基礎(chǔ)行的 RowState 來(lái)隱式地管理要公開(kāi)哪些行版本。例如,如果 RowStateFilter 設(shè)置為 DataViewRowState.Deleted,由于不存在 Current 行版本,DataView 將公開(kāi)所有 Deleted 行的 Original 行版本。可以使用 DataRowView RowVersion 屬性來(lái)確定要公開(kāi)行的哪些行版本。

[C#]
DataView prodView = new DataView(prodDS.Tables["Products"],
                                 "UnitsInStock <= ReorderLevel",
                                 "SupplierID, ProductName",
                                 DataViewRowState.CurrentRows);

--------------------------------------------------------------------------

查看 DataView 的內(nèi)容

DataView 公開(kāi)可枚舉的 DataRowView 對(duì)象集合。DataRowView 對(duì)象將值公開(kāi)為 object 數(shù)組,這些數(shù)組按基礎(chǔ)表中列的名稱或序號(hào)引用來(lái)編制索引。可以使用 DataRowViewRow 屬性來(lái)訪問(wèn)由 DataRowView 公開(kāi)的 DataRow

當(dāng)使用 DataRowView 查看值時(shí),DataViewRowStateFilter 屬性將確定公開(kāi)基礎(chǔ) DataRow 的哪一個(gè)行版本。
[C#]
  DataView catView = new DataView(catDS.Tables["Categories"]);

  Console.WriteLine("Current Values:");

  WriteView(catView);

  Console.WriteLine("Original Values:");

  catView.RowStateFilter = DataViewRowState.ModifiedOriginal;

  WriteView(catView);

public static void WriteView(DataView myView)
{
  foreach (DataRowView myDRV in myView)
  {
    for (int i = 0; i < myView.Table.Columns.Count; i++)
      Console.Write(myDRV[i] + "\t");
    Console.WriteLine();
  }
}

-------------------------------------------------------------------------------------------------------------

使用 DataView 修改數(shù)據(jù)

可以使用 DataView 在基礎(chǔ)表中添加、刪除或修改數(shù)據(jù)行。通過(guò)設(shè)置 DataView 的三個(gè)布爾值屬性之一,可以控制使用 DataView 修改基礎(chǔ)表數(shù)據(jù)的能力。這些屬性為 AllowNewAllowEditAllowDelete。默認(rèn)情況下,它們?cè)O(shè)置為 true

如果 AllowNewtrue,則可以使用 DataView AddNew 方法來(lái)創(chuàng)建新的 DataRowView。請(qǐng)注意,在調(diào)用 DataRowViewEndEdit 方法之前,新行實(shí)際上不會(huì)添加到基礎(chǔ) DataTable 中。如果調(diào)用 DataRowViewCancelEdit 方法,則將丟棄新行。另請(qǐng)注意,一次只能編輯一個(gè) DataRowView。如果在存在掛起行時(shí)調(diào)用 DataRowViewAddNewBeginEdit 方法,則會(huì)對(duì)該掛起行隱式調(diào)用 EndEdit。當(dāng)調(diào)用 EndEdit 時(shí),更改將應(yīng)用于基礎(chǔ) DataTable,并且隨后可以使用 DataTableDataSetDataRow 對(duì)象的 AcceptChangesRejectChanges 方法來(lái)提交或拒絕更改。如果 AllowNewfalse,則當(dāng)調(diào)用 DataRowView AddNew 方法時(shí),將引發(fā)異常。

如果 AllowEdittrue,可以通過(guò) DataRowView 來(lái)修改 DataRow 的內(nèi)容。您可以使用 DataRowView.EndEdit 確認(rèn)對(duì)基礎(chǔ)行的更改,或使用 DataRowView.CancelEdit 拒絕更改。請(qǐng)注意,一次只能編輯一行。如果在存在掛起行時(shí)調(diào)用 DataRowViewAddNewBeginEdit 方法,則將對(duì)掛起行隱式調(diào)用 EndEdit。當(dāng)調(diào)用 EndEdit 時(shí),建議更改將放置在基礎(chǔ) DataRowCurrent 行版本中,隨后可以使用 DataTableDataSetDataRow 對(duì)象的 AcceptChangesRejectChanges 方法來(lái)提交或拒絕這些更改。如果 AllowEditfalse,則當(dāng)試圖修改 DataView 中的值時(shí),將引發(fā)異常。

當(dāng)編輯現(xiàn)有 DataRowView 時(shí),仍將引發(fā)基礎(chǔ) DataTable 的事件,并提供建議更改。請(qǐng)注意,如果對(duì)基礎(chǔ) DataRow 調(diào)用 EndEditCancelEdit,那么無(wú)論是否對(duì) DataRowView 調(diào)用 EndEditCancelEdit,都將應(yīng)用或取消掛起的更改。

如果 AllowDeletetrue,則可以使用 DataViewDataRowView 對(duì)象的 Delete 方法刪除 DataView 中的行,這些行也將從基礎(chǔ) DataTable 中刪除。隨后可以分別使用 AcceptChangesRejectChanges 來(lái)提交或拒絕刪除。如果 AllowDeletefalse,當(dāng)調(diào)用 DataViewDataRowViewDelete 方法時(shí),將引發(fā)異常。

以下代碼示例禁用通過(guò) DataView 刪除行的功能,并使用 DataView 向基礎(chǔ)表中添加新行。

[C#]
DataTable custTable = custDS.Tables["Customers"];
DataView custView = custTable.DefaultView;
custView.Sort = "CompanyName";

custView.AllowDelete = false;

DataRowView newDRV = custView.AddNew();
newDRV["CustomerID"] = "ABCDE";
newDRV["CompanyName"] = "ABC Products";
newDRV.EndEdit();

posted on 2005-11-24 12:23 夢(mèng)在天涯 閱讀(1211) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): C#/.NET

公告

EMail:itech001#126.com

導(dǎo)航

統(tǒng)計(jì)

  • 隨筆 - 461
  • 文章 - 4
  • 評(píng)論 - 746
  • 引用 - 0

常用鏈接

隨筆分類(lèi)

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1816192
  • 排名 - 5

最新評(píng)論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              亚洲在线观看| 99亚洲一区二区| 久久精品123| 一区二区三区高清在线观看| 韩国av一区| 国产免费成人| 欧美色图天堂网| 欧美国产亚洲视频| 久久久之久亚州精品露出| 亚洲一区视频在线| 亚洲免费av电影| 亚洲黄网站黄| 欧美国产日韩一区二区在线观看| 久久久精品一区| 欧美一区亚洲二区| 亚洲欧美另类中文字幕| 在线一区二区日韩| 夜夜夜久久久| 亚洲免费高清| 亚洲美女av电影| 亚洲精美视频| 91久久精品国产91性色| 在线观看精品一区| 精品1区2区3区4区| 一区国产精品| 黄色成人在线网址| 国语自产在线不卡| 黄色精品免费| 韩日视频一区| 影音先锋亚洲一区| 亚洲电影一级黄| 亚洲人www| 99这里只有精品| 亚洲视频自拍偷拍| 亚洲一区视频在线| 欧美亚洲一级片| 久久久久成人精品| 另类专区欧美制服同性| 奶水喷射视频一区| 欧美 日韩 国产一区二区在线视频| 久久综合九色综合网站| 看片网站欧美日韩| 欧美黄色一级视频| 亚洲日本aⅴ片在线观看香蕉| 亚洲精品日韩在线| 一区二区日韩欧美| 西西裸体人体做爰大胆久久久| 欧美在线免费| 免费成人高清视频| 欧美三区在线观看| 国产区精品在线观看| 有码中文亚洲精品| 亚洲欧洲一区二区天堂久久| 中文久久乱码一区二区| 欧美一区二区精品| 麻豆精品一区二区av白丝在线| 亚洲第一中文字幕在线观看| 亚洲精品麻豆| 亚洲欧美日韩国产精品 | 午夜久久久久久久久久一区二区| 性色av一区二区三区在线观看| 久久精品国产99| 欧美电影免费观看大全| 欧美视频二区| 国产自产v一区二区三区c| 91久久在线观看| 亚洲欧美国产高清| 欧美va亚洲va香蕉在线| 亚洲美洲欧洲综合国产一区| 亚洲欧美日韩国产一区二区三区| 久久免费国产精品| 欧美午夜精品久久久久免费视| 国产亚洲网站| 日韩一级黄色av| 久久人人爽人人爽| 日韩午夜中文字幕| 久久精品视频在线观看| 欧美日韩中国免费专区在线看| 韩国免费一区| 亚洲一区三区电影在线观看| 久久综合一区二区| 亚洲图片你懂的| 免播放器亚洲| 国产一区二区精品丝袜| 中日韩高清电影网| 久久久久九九九| 一区二区三区久久久| 老司机精品视频网站| 国产女精品视频网站免费| 日韩午夜免费视频| 久久伊人一区二区| 亚洲专区免费| 欧美日韩国产123区| 在线观看视频一区二区欧美日韩 | 欧美韩日高清| 亚洲在线观看免费| 欧美日本在线视频| 亚洲电影免费| 久久久成人精品| 亚洲专区一区| 欧美日韩在线电影| 亚洲精品一区二区三区蜜桃久 | 欧美伊人久久| 一本色道精品久久一区二区三区| 免费试看一区| 在线观看亚洲精品视频| 久久久精品国产免费观看同学| 中文亚洲免费| 欧美日韩在线一区| 一本色道久久综合亚洲精品婷婷| 欧美大片在线影院| 久久久91精品国产一区二区三区| 国产欧美日韩精品专区| 亚洲一区二区精品| 99精品视频免费全部在线| 欧美国产日产韩国视频| 亚洲激情视频在线观看| 欧美成年人视频网站欧美| 久久精品日产第一区二区三区| 国产日韩精品视频一区| 欧美一级片一区| 亚洲欧美国产77777| 国产精品亚洲аv天堂网| 亚洲免费网址| 亚洲小说欧美另类婷婷| 国产精品久久毛片a| 午夜精品久久久久久99热软件| 一区二区三区视频在线 | 亚洲午夜在线视频| 国产精品免费久久久久久| 午夜精品免费在线| 亚洲综合国产精品| 国产日韩久久| 久色婷婷小香蕉久久| 久久艳片www.17c.com| 亚洲国产精品成人精品| 亚洲成色www8888| 欧美激情小视频| 一区二区三区四区五区精品视频| 99国内精品久久| 国产精品乱码| 久久久亚洲影院你懂的| 久久嫩草精品久久久精品| 亚洲人成欧美中文字幕| 亚洲免费观看高清完整版在线观看熊| 欧美日韩精品高清| 亚洲欧美视频一区| 欧美一区影院| 亚洲日本成人女熟在线观看| 亚洲精选91| 国产精品视频精品| 久久手机免费观看| 欧美成人精品在线观看| 亚洲午夜羞羞片| 欧美在线观看网站| 亚洲精品日日夜夜| 亚洲调教视频在线观看| 欧美特黄视频| 久久先锋影音av| 亚洲日本电影在线| 一本色道久久综合亚洲精品婷婷| 国产精品国产三级国产普通话99| 久久精彩免费视频| 欧美成人午夜激情| 亚洲在线中文字幕| 久久久精彩视频| 亚洲色诱最新| 欧美一区中文字幕| 日韩视频在线观看免费| 亚洲欧美视频| 亚洲精品一区二区三区樱花| 一区二区高清视频| 精品动漫一区| 99热在这里有精品免费| 国内精品免费午夜毛片| 亚洲人永久免费| 国产综合精品一区| 日韩视频一区二区在线观看 | 久久免费视频这里只有精品| 久久综合一区二区| 午夜视频久久久久久| 欧美 日韩 国产在线| 欧美亚洲免费电影| 欧美激情综合网| 久久免费少妇高潮久久精品99| 欧美日韩国产电影| 久久综合网络一区二区| 国产精品久久国产精麻豆99网站| 免费视频亚洲| 国产日韩专区在线| 一区二区av在线| 亚洲精品欧美精品| 久久久久久电影| 欧美一区二区日韩| 欧美日韩在线一区二区| 欧美国产精品人人做人人爱| 国产人久久人人人人爽| 99视频一区二区三区| 亚洲精品免费在线| 久久久久免费观看|