国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

總結(jié).NET開(kāi)發(fā)中ADO.NET的應(yīng)用_.Net教程

2024-07-10 12:52:01
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

推薦:關(guān)于Gridview的多種使用方法總結(jié)
asp.net中 Gridview的多種使用方法總結(jié),具體如下面 截圖,并包括詳細(xì)源代碼注釋?zhuān)枰恼?qǐng)下載。 1:在Gridview中無(wú)須編寫(xiě)后臺(tái)代碼,直接實(shí)現(xiàn)增除刪改 2:在Gridview中添加新記錄 3:在Gridview中實(shí)現(xiàn)編輯和更新操作 4:在Gridview中實(shí)現(xiàn)一次性更新所有記錄

一、DataTable
DataTable表示內(nèi)存中數(shù)據(jù)的一個(gè)表,它完全是在內(nèi)存中的一個(gè)獨(dú)立存在,包含了這張表的全部信息。DataTable可以是從通過(guò)連接從數(shù)據(jù)庫(kù)中讀取出來(lái)形成的一個(gè)表,一旦將內(nèi)容讀到DataTable中,此DataTable就可以跟數(shù)據(jù)源斷開(kāi)而獨(dú)立存在;也可以是完全由程序自己通過(guò)代碼來(lái)建立的一個(gè)表。
◆ DataColumn
一個(gè)表是由行和列組成的一個(gè)兩維的結(jié)構(gòu)。表的結(jié)構(gòu)是由DataColumn對(duì)象的集合組成,DataColumn對(duì)象集合可由DataTable.Columns屬性中能獲取到,通過(guò)定義每一列的數(shù)據(jù)類(lèi)型來(lái)確定表的架構(gòu),類(lèi)似數(shù)據(jù)庫(kù)中定義表。定義完表的結(jié)構(gòu)就可以根據(jù)結(jié)構(gòu)來(lái)生成DataRow,用DataTable.NewRow()方法來(lái)生成此DataTable結(jié)構(gòu)的新行。
一個(gè)DataTable是由DataRow的集合組成的,DataRow的集合這個(gè)可以由DataTable.Rows屬性來(lái)訪(fǎng)問(wèn)。
DataTable還可以通過(guò)現(xiàn)有的列用Expression屬性的表達(dá)式創(chuàng)建一些列。
1、創(chuàng)建計(jì)算出的列
比如:已經(jīng)有了一個(gè)表結(jié)構(gòu),表中有一個(gè)DataColumn的集合,其中有一個(gè)叫UnitPrice的列,你可以新建一個(gè)DataColumn,設(shè)置好ColumnName,再設(shè)置此列的表達(dá)式,DataColumn.Expression="UnitPrice * 0.086",這個(gè)列的值就是名字為UnitPrice的列計(jì)算出來(lái)的,在創(chuàng)建表達(dá)式時(shí),使用ColumnName屬性來(lái)引用列。 
2、第二個(gè)用途是創(chuàng)建聚合列
聚合列聚合通常沿著關(guān)系執(zhí)行(有關(guān)關(guān)系的描述見(jiàn)下面DataRelation部分),如果order表有名為detail 的子表,兩個(gè)表之間通過(guò)order.orderid和detail.orderid兩個(gè)列建立一個(gè)關(guān)系DataRelation對(duì)象名為“order2detail”,在主表order中就可以建立一個(gè)聚合列,將計(jì)算每個(gè)order在detail表中含有的所有item的價(jià)格的和:DataColumn.Expression = “sum(child(order2detail).price)",child(order2detail)表示通過(guò)關(guān)系order2detail聯(lián)系到的子表,child(order2detail).price就表示子表的price列。 
◆ DataRow 
DataRow對(duì)象沒(méi)有直接在代碼中使用的構(gòu)造函數(shù),一般是從具有一定結(jié)構(gòu)的DataTable用NewRow()方法來(lái)新建一個(gè)DataRow對(duì)象。一個(gè)DataRow根據(jù)其是獨(dú)立的,還是屬于某個(gè)DataTable,是否修改過(guò),是否被DataTable刪除等等不同的情況有不同的狀態(tài),由DataRow.RowState屬性公開(kāi),如下表: 
成員名稱(chēng) 說(shuō)明
Added該行已添加到DataRowCollection中,AcceptChanges 尚未調(diào)用。Deleted該行已通過(guò)DataRow的Delete方法被刪除。
Deleted 該行已通過(guò)DataRow的Delete方法被刪除。
Detached 該行已被創(chuàng)建,但不屬于任何DataRowCollection。DataRow 在以下情況下立即處于此狀態(tài):創(chuàng)建之后添加到集合中之前;或從集合中移除之后。
Modified 該行已被修改,AcceptChanges 尚未調(diào)用。 
Unchanged 該行自上次調(diào)用 AcceptChanges 以來(lái)尚未更改。 
一個(gè)DataRow對(duì)象剛被創(chuàng)建之后其狀態(tài)是Detached,是孤立的一個(gè)存在,所以建立了DataRow之后在DataRow中的單元填充了數(shù)據(jù)后還要通過(guò)DataTable.Rows.Add(DataRow)方法將此DataRow添加到DataTable,DataRow添加到DataTable后, 這個(gè)DataRow的狀態(tài)就轉(zhuǎn)變?yōu)锳dded。當(dāng)修改了這個(gè)DataRow后,這個(gè)DataRow狀態(tài)轉(zhuǎn)為Modified,當(dāng)用DataRow.Delete()方法刪除DataRow后,DataRow狀態(tài)將轉(zhuǎn)為Deleted,不過(guò)此行還存在在DataTable中的,只是狀態(tài)改變了,這時(shí)用DataTable.Rows.Count查看行數(shù),跟刪除前是一樣的。只有在調(diào)用了DataTable.Remove(DataRow)方法后,此DataRow才被從DataTable移除,狀態(tài)也回復(fù)到Detached孤立狀態(tài)。 
一旦調(diào)用了DataTable.AcceptChanges()方法后,所有的行將根據(jù)不同的狀態(tài)做不同的處理,Added、Modified、Unchanged將保留當(dāng)前值,Deleted的行將從DataTable中移除,最后所有的行的狀態(tài)都置為Unchanged。當(dāng)DataTable是從DataAdapter.Fill(
DataSet,DataTable)方法填充而形成的,F(xiàn)ill()方法將自動(dòng)調(diào)用AcceptChanges()方法,將DataTable的行狀態(tài)都置為Unchanged。并且,如果Fill方法中指定的那個(gè)DataTable在要填充的那個(gè)DataSet不存在時(shí),會(huì)生成一個(gè)跟數(shù)據(jù)源表同樣的結(jié)構(gòu)的DataTable并填充數(shù)據(jù)。 
◆ DataRelation 
表示兩個(gè)DataTable對(duì)象之間的父/子關(guān)系。可以類(lèi)比于數(shù)據(jù)庫(kù)中的表之間的關(guān)系,父表相當(dāng)于關(guān)系列為主鍵的表,子表相當(dāng)于關(guān)系列為外鍵的表。DataRelation 構(gòu)造函數(shù)一般為:DataRelation(String, DataColumn, DataColumn) ,string為關(guān)系名,第一個(gè)DataColumn為建立關(guān)系的父表列,第二個(gè)DataColumn為建立關(guān)系的子表列,建立關(guān)系的兩個(gè)列的 DataType 值必須相同。 
建立好了關(guān)系,必須把這個(gè)關(guān)系加入到DataTable的ParentRelations屬性或ChildRelations 屬性,這兩個(gè)屬性包含這個(gè)表的所有的跟父表的關(guān)系和跟子表的關(guān)系。若關(guān)系中此表是父表則將此關(guān)系加入到ChildRelations集合中,否則加入到ParentRelations集合中。

分享:String.Empty、NULL、“”的不同之處
在asp.net(c#)中 String.Empty、NULL、 3個(gè)語(yǔ)法 經(jīng)常使用,作用是判斷字符串是否為空。 本文就它們彼此的不同之處做一粗略說(shuō)明。 string.Empty就相當(dāng)于 一般用于字符串的初始化 比如: stringa; Console.WriteLine(a);//這里會(huì)報(bào)錯(cuò),因?yàn)闆](méi)有初始化a 而下

共6頁(yè)上一頁(yè)123456下一頁(yè)
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 彭山县| 苗栗县| 驻马店市| 改则县| 壤塘县| 金门县| 离岛区| 黑龙江省| 西乌珠穆沁旗| 乳山市| 根河市| 交城县| 绥江县| 广德县| 三明市| 石城县| 比如县| 武宣县| 呼图壁县| 文水县| 广东省| 阳泉市| 西安市| 汾西县| 玉林市| 长宁县| 波密县| 都匀市| 黑河市| 平利县| 南华县| 康乐县| 来宾市| 潢川县| 竹山县| 汾西县| 嘉峪关市| 葫芦岛市| 伊通| 台南县| 竹溪县|