返回

福州达内教育

ADO.NET中容易混淆的概念

软件测试学习网更新时间:2021-10-14 浏览:189

一、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结合中。

相关资讯

参加云计算培训就业前景怎么样
2021-10-20 485
云技术不但不容易变弱其发展趋势优点,反过来,在5G技术性的推动下,云计算技术发展前景也会变的愈来愈丰厚。下面,就要达内教育教师为我们深入分析一下,将来云计算技术的发展趋向...
学习HTML5大前端为什么需要参加培训
2021-10-20 428
很多人想学习HTML5大前端,可是又遭遇一个难题,是通过自学或是报名参加学习的好用呢?实际上,不一样层级的人对前面的接收水平是不一样的...
软件测试好不好学
2021-10-23 426
伴随着软件测试新技术的持续发展趋势,软件测试方式也愈来愈多,选择适宜的软件测试方式能够让大家在实际工作上事倍功半。下面,就要达内教育教师带你去掌握一些较常用的软件测试方式...
要不要参加软件测试培训
2021-10-20 418
并不是每一个人都合适学习软件测试,仅有对软件测试有浓郁的自学能力再加上锲而不舍地勤奋,才可以学业有成、学有所获。此外,除开浓郁的自学能力,学习软件测试还*极强的思维逻辑能力、专业能力及其具有一定的程序编程能力...
学习云计算事半功倍的方法有哪些
2021-10-20 416
要想紧随领域发展趋向,进到云计算技术行业,有关的高效学习法方式有哪些方面呢?达内教育教师觉得除开通过自学这条路面外,选择一家赞不绝口的IT培训学校是当前更为切实可行的方式...
学习物联网选择哪家培训机构比较好
2021-10-22 413
由于目前市面上的培训学校许多,可选择的培训学校也许多。下面,就要达内教育教师对你说,学习培训物联网技术选择教育培训机构应当注重哪几个方面...
学IT选择哪家培训机构比较好
2021-10-20 371
如今市面的IT培训学校许多,从外表上是不能区别培训学校的优劣。因而就致使了许多同学为了能达到迅速学生就业,盲目跟风地选择培训学校,最后的结论是既消耗了時间与活力,又没学得本质有效的专业知识与专业技能...
iOS让键盘消失的技巧
2021-07-15 320
聚焦点在UITextField或UITextView中的情况下,电脑键盘会发生,想点一下情况就要电脑键盘消退。它是在手执机器设备上服合客户的实际操作习惯性。自然方式 有很多,在这儿我讲一个较为好用的方式...

相关课程

栏目导航