同桌上课用手指进去了好爽_欧美丰满熟妇xxⅹⅹ性大i_成人av天天日天天拍拍_猛男gay帅男gay男男同志_欧美va天堂在线观看_人妻无码av中文系列三里桃花_亚欧免费无码在线观看_久久久精品国产亚洲av水_日韩在线免费看污污污_2021无码专区人妻系列日韩

首頁 優(yōu)化推廣 數(shù)據(jù)集的使用方法和技巧

數(shù)據(jù)集的使用方法和技巧

來源: | 時間:2011/4/7 16:08:48 |

數(shù)據(jù)集概述
1.1數(shù)據(jù)集

l         是一種代表關(guān)系數(shù)據(jù)的內(nèi)存駐留結(jié)構(gòu)

l         是以XML 形式表示的數(shù)據(jù)視圖,是一種數(shù)據(jù)關(guān)系視圖。

l         在Visual Studio 和.NET Framework 中,XML 是存儲和傳輸各種數(shù)據(jù)時所用的格式。因此,數(shù)據(jù)集與XML 有密切關(guān)系。

1.2數(shù)據(jù)集分類

– 類型化數(shù)據(jù)集

–     非類型化數(shù)據(jù)集

1.3類型化數(shù)據(jù)集和非類型化數(shù)據(jù)集的區(qū)別

 
 結(jié)構(gòu)體系
 功能類型
 檢測
 
類型化數(shù)據(jù)集
 類型化數(shù)據(jù)集這樣一種數(shù)據(jù)集,它先從基DataSet 類派生,然后,使用XML 架構(gòu)文件(.xsd 文件)中的信息生成新類。架構(gòu)中的信息(表、列等)被作為一組第一類對象和屬性生成并編譯為此新數(shù)據(jù)集類。
 可以直接通過名稱

引用表和列
 在VS.NET中可以智能感知元素的類型
 
非類型化數(shù)據(jù)


 非類型化數(shù)據(jù)集沒有相應(yīng)的內(nèi)置架構(gòu)。與類型化數(shù)據(jù)集一樣,非類型化數(shù)據(jù)集也包含表、列等,但它們只作為集合公開。
 需要通過Tables集

合引用列
 不能感知
 

 

1.4 數(shù)據(jù)集的屬性

重點:

– Tables

–     Relations

 

創(chuàng)建數(shù)據(jù)集和數(shù)據(jù)表
2.1創(chuàng)建數(shù)據(jù)集:

– 設(shè)計時創(chuàng)建非類型化數(shù)據(jù)集

工具箱“數(shù)據(jù)”

–     運行時創(chuàng)建非類型化數(shù)據(jù)集

 

2.2 創(chuàng)建數(shù)據(jù)表

• 數(shù)據(jù)表屬性

–最重要的集合:

• Columns

• Rows

• Constraints

• 給數(shù)據(jù)集添加數(shù)據(jù)表

[參考代碼]

//創(chuàng)建數(shù)據(jù)集

DataSet ds = new DataSet("myDS");

DataTable dsMaster = new DataTable("master");

DataTable dsChild = new DataTable("child");

ds.Tables.Add(dsMaster);

ds.Tables.Add(dsChild);

 

2.3 為數(shù)據(jù)表添加列

• Columns集合屬性

• 為數(shù)據(jù)表添加列

 

2.4 為數(shù)據(jù)表添加行

• Rows屬性

• Rows.Add方法

– Add(DataRow):向數(shù)據(jù)表中添加指定的數(shù)據(jù)行

• 為數(shù)據(jù)表添加行

[參考代碼]

//添加列

ds.Tables["master"].Columns.Add("masterID", typeof(Int32));

//添加行

DataRow dr = ds.Tables["master"].NewRow();

dr["masterID"] = "";

ds.Tables["master"].Rows.Add(dr);

//修改表頭

ds.Tables["master"].Columns["masterID"].Caption = "主ID";

 

2.5 為數(shù)據(jù)表添加約束

• ForeignKeyConstraints屬性:保證兩個數(shù)據(jù)表之間對應(yīng)行改變時的關(guān)系

• UniqueConstraints屬性:保證某列數(shù)據(jù)在每行都不相同

• 在運行時為數(shù)據(jù)表添加約束

–添加外鍵約束:修改一個表的值看是否變化

–添加唯一鍵約束

 

2.6 為數(shù)據(jù)集添加關(guān)系

• Relations:定義數(shù)據(jù)表之間的關(guān)系,該集合中可以包含0個或者多個數(shù)據(jù)關(guān)系對象,每個對象表示

兩個表之間的關(guān)系

• 只有數(shù)據(jù)集的EnforeConstraints屬性設(shè)置為true時,DataRelation中建立的約束才會被強(qiáng)制執(zhí)行

• 為數(shù)據(jù)表添加數(shù)據(jù)關(guān)系(非類型數(shù)據(jù)集)

[參考代碼]

//添加唯一鍵

System.Data.UniqueConstraint uc = new UniqueConstraint("唯一鍵名稱",ds.Tables["master"].Columns["masterID"]);

//添加外鍵

System.Data.ForeignKeyConstraint fc = new ForeignKeyConstraint("外鍵名稱", "主表列", "從表列");

//添加關(guān)系

ds.Relations.Add("關(guān)系名","父表列","子表列");

//注意關(guān)系和外鍵的區(qū)別

if (ds.Relations.Count <= 0)

    return ;

System.Data.DataRow dr = ds.Tables["master"].Rows[0];

System.Data.DataRow[] drArray = dr.GetChildRows(ds.Relations[0]);

//這里的區(qū)別在于 外鍵:如果主表列更新,則從表列都對應(yīng)更新

//關(guān)系:能夠從父表對應(yīng)的一列,獲取子表對應(yīng)的行集

 

2.7 顯示行狀態(tài)

• 數(shù)據(jù)行的RowState屬性反映了自數(shù)據(jù)表創(chuàng)建以來或者上次更新后在數(shù)據(jù)表上采取的操作

• DataRowState的取值

• 顯示狀態(tài)行

[參考代碼]

//顯示行狀態(tài)

DataRowState drs = ds.Tables["master"].Rows[0].RowState;

 

數(shù)據(jù)操作
3.1數(shù)據(jù)集方法

– 克隆數(shù)據(jù)集:只復(fù)制結(jié)構(gòu)

DataSet.Clone ();

– 復(fù)制數(shù)據(jù)集:復(fù)制結(jié)構(gòu)和數(shù)據(jù)

DataSet.Copy ();

3.2數(shù)據(jù)表方法

– Select方法:用于在運行時過濾數(shù)據(jù)表的行并進(jìn)行排序。它不對表的內(nèi)容作改動。該方法只是返回與指定的規(guī)則相匹配的行數(shù)組

//返回DataRow[]集合

DataSet.Tables["master"].Select(“條件”,”排序規(guī)則”);

 

數(shù)據(jù)集內(nèi)的篩選與排序
在填充數(shù)據(jù)集之后,通常會發(fā)現(xiàn)使用表中的不同記錄子集或以不同順序查看數(shù)據(jù)很有用??梢酝ㄟ^對數(shù)據(jù)集內(nèi)的數(shù)據(jù)進(jìn)行篩選和排序來實現(xiàn)這一點。若要簡化此過程,可以創(chuàng)建數(shù)據(jù)視圖,數(shù)據(jù)視圖提供可合并篩選器和排序條件的對象,可用作數(shù)據(jù)綁定的源

 

數(shù)據(jù)集內(nèi)的篩選與排序

可改用內(nèi)置的數(shù)據(jù)集功能來篩選和排序。有兩個選擇:

• 數(shù)據(jù)表支持Select 方法,您可調(diào)用該方法來篩選和排序。該方法并不更改表中記錄的內(nèi)容和順序,相反,它向您提供一個記錄列表(或數(shù)組)表示所指定的條件。

• 可以使用數(shù)據(jù)視圖(DataView 對象)。數(shù)據(jù)視圖是一個對象,它作為數(shù)據(jù)表之上的層,提供經(jīng)過篩選和排序后的表內(nèi)容視圖。(還可以使用數(shù)據(jù)視圖管理器,它的行為像數(shù)據(jù)視圖集合。)數(shù)據(jù)視圖類似于數(shù)據(jù)庫中的視圖,因為它不是數(shù)據(jù)的副本。相反,它只是查看表中數(shù)據(jù)的另一種方式。

 

4.1 數(shù)據(jù)視圖概述

• 數(shù)據(jù)視圖是位于數(shù)據(jù)表之上的獨立對象

• 數(shù)據(jù)視圖是對單一數(shù)據(jù)進(jìn)行過濾和排序后的視圖

• 可以用作綁定控件的數(shù)據(jù)源

• 可以為一個數(shù)據(jù)表創(chuàng)建多個數(shù)據(jù)視圖

• 視圖數(shù)據(jù)行實際引用了數(shù)據(jù)行的DataRowView對象

 

DataRowView的屬性

 

屬性
 描述
 
DataView
 該數(shù)據(jù)行視圖所屬的數(shù)據(jù)視圖
 
IsEdit
 表示該數(shù)據(jù)行視圖是否正在被編輯
 
IsNew
 表示該數(shù)據(jù)行視圖是否為新建
 
Item
 該數(shù)據(jù)行視圖中某列的值
 
Row
 正在被查看的數(shù)據(jù)行
 
RowVersion
 該數(shù)據(jù)行視圖的當(dāng)前版本
 

4.2 創(chuàng)建數(shù)據(jù)視圖

• 在設(shè)計時創(chuàng)建

–創(chuàng)建類型化數(shù)據(jù)集

–從工具箱“數(shù)據(jù)”中選擇“DataView”控件

• 可以使用表的DefaultView 屬性來訪問該默認(rèn)數(shù)據(jù)視圖,該數(shù)據(jù)視圖返回一個

DataView 對象??稍谶\行時設(shè)置默認(rèn)數(shù)據(jù)視圖的屬性。

 

4.3 數(shù)據(jù)視圖的屬性

• 數(shù)據(jù)視圖屬性

– RowFilter

– RowStateFilter

– Sort

• 使用表的Select 方法或數(shù)據(jù)視圖的RowFilter 屬性,可以篩選數(shù)據(jù)表中的記錄以便僅使想操作的記錄可用。這在要操作數(shù)據(jù)集表中記錄的不同子集時很有用。若要指定篩選器條件,可以使用與創(chuàng)建列表達(dá)式所用語法相同的表達(dá)式語法。

[參考代碼]

//RowFilter判斷

string tempid = this.lbdid.Text.ToString();

bookView.RowFilter = "id= " + tempid + " ";

if (bookView.Count==1)

{

     Response.Write("<script langusge= javascript >alert( 。。。 );</script>");

     return;

}

//RowStateFilter判斷

DataView dwMain = (DataView)Session["cart"];

dwMain.RowFilter = this.tbCon.Text;

switch (ddlState.SelectItem.Value)

{

    case "CurrentRows":

        dwMain.RowFilter = DataViewRowState.CurrentRows;

        break;

服務(wù)熱線

153 8323 9821

功能和特性

價格和優(yōu)惠

網(wǎng)站和維護(hù)

推廣和優(yōu)化

微信服務(wù)號