• 手机站
  • 收藏
聚培教育网合作机构 > 福州达内教育
福州达内教育
400-998-6158
福州达内教育以打造符合企业需求的实战型人才为目标,结合多种就业渠道,将学员就业视为己任。
福州达内教育

ADO.NET中容易混淆的概念

软件测试学习网

更新时间:2021-10-14 浏览:168
核心提示:DataTable能够是以根据联接从数据库查询中载入出去产生的一个表,一旦将內容看到DataTable中,此DataTable就可以跟数据库断掉而单独存有;还可以是彻底由程序流程自身根据编码来创建的一个表

一、DataTable

DataTable表明运行内存中数据的一个表,它彻底是在运行内存中的一个单独存有,包括了这张表的所有信息内容。DataTable能够是以根据联接从数据库查询中载入出去产生的一个表,一旦将內容看到DataTable中,此DataTable就可以跟数据库断掉而单独存有;还可以是彻底由程序流程自身根据编码来创建的一个表。

◆ DataColumn

一个表是由列和行构成的一个两维的构造。表的构造是由DataColumn目标的结合构成,DataColumn目标结合可由DataTable.Columns属性里能获得到,根据界定每一列的基本数据类型来明确表的构架,相近数据库查询中界定表。界定完表的构造就可以依据构造来转化成DataRow,用DataTable.NewRow()方式 来转化成此DataTable构造的新行。

一个DataTable是由DataRow的结合构成的,DataRow的结合这一能够由DataTable.Rows属性来浏览。

DataTable还能够根据目前的列用Expression特性的关系式建立一些列。

1、建立测算出的列

例如:早已拥有一个表结构,表格中有一个DataColumn的结合,在其中有一个叫UnitPrice的列,你能新创建一个DataColumn,设定好ColumnName,再设定此列的关系式,DataColumn.Expression="UnitPrice * 0.086",这一列的值便是名称为UnitPrice的列推算出来的,在建立关系式时,应用ColumnName特性来引入列。

2、第二个主要用途是建立汇聚列

汇聚列汇聚一般顺着关联实行(相关关联的叙述见下边DataRelation一部分),假如order表有名叫detail 的子表,2个表中间根据order.orderid和detail.orderid2个列创建一个关联DataRelation目标名叫“order2detail”,在主表order中就可以创建一个汇聚列,将测算每一个order在detail表格中带有的全部item的价钱的和:DataColumn.Expression = “sum(child(order2detail).price)",child(order2detail)表明根据关联order2detail联络到的子表,child(order2detail).price就表明子表的price列。

◆ DataRow

DataRow目标沒有立即在编码中应用的构造方法,一般是以具备一定构造的DataTable用NewRow()方式 来新创建一个DataRow目标。一个DataRow依据其是单独的,或是归属于某一DataTable,是不是改动过,是不是被DataTable删掉这些不一样的状况有不一样的情况,由DataRow.RowState特性公布,以下表:

组员名字 表明

Added这家银行已加上到DataRowCollection中,AcceptChanges 并未启用。Deleted这家银行已根据DataRow的Delete方式 被删掉。

Deleted 这家银行已根据DataRow的Delete方式 被删掉。

Detached 这家银行已被建立,但不属于一切DataRowCollection。DataRow 在下列状况下马上处在此情况:建立以后加上到结合中以前;或从结合中清除以后。

Modified 这家银行已被改动,AcceptChanges 并未启用。

Unchanged 这家银行自之前启用 AcceptChanges 至今并未变更。

一个DataRow目标刚被建立以后其情况是Detached,是独立的一个存有,因此创建了DataRow以后在DataRow中的模块添充了数据信息后还需要根据DataTable.Rows.Add(DataRow)方式 将此DataRow加上到DataTable,DataRow加上到DataTable后, 这一DataRow的情况就变化为Added。当改动了这一DataRow后,这一DataRow情况变为Modified,若用DataRow.Delete()方式 删掉DataRow后,DataRow情况将变为Deleted,但是此番还存有在DataTable中的,仅仅情况更改了,这时候用DataTable.Rows.Count查询个数,跟删掉前是一样的。仅有在启用了DataTable.Remove(DataRow)方式 后,此DataRow才被从DataTable清除,情况也回应到Detached独立情况。

一旦启用了DataTable.AcceptChanges()方式 后,全部的已然依据不一样的情况做不一样的解决,Added、Modified、Unchanged将保存当今值,Deleted的已然从DataTable中清除,最终全部的行的情况都置为Unchanged。当DataTable是以DataAdapter.Fill(DataSet,DataTable)方式 添充而产生的,Fill()方式 将全自动启用AcceptChanges()方式 ,将DataTable的行情况都置为Unchanged。而且,假如Fill方式 中特定的那一个DataTable在要添充的那一个DataSet不会有时,会转化成一个跟数据库表一样的构造的DataTable并添充数据信息。

◆ DataRelation

表明2个DataTable目标中间的父/子关联。能够对比于数据库查询中的表中间的关联,父表等同于关联列入外键约束的表,子表等同于关联列入外键约束的表。DataRelation 构造方法一般为:DataRelation(String, DataColumn, DataColumn) ,string为关联名,**个DataColumn为创建关联的父表列,第二个DataColumn为创建关联的子表列,创建关联的2个列的 DataType 值务必同样。

创建好啦关联,务必把这个关联添加到DataTable的ParentRelations属性或ChildRelations 特性,这两个特性包括这一表的全部的跟父表的关联和跟子表的关联。若关联中此表有父表则将此关联添加到ChildRelations结合中,不然添加到ParentRelations结合中。

更多>同类资讯
更多>相关课程
顶部