C DataRow 學習總結

2021-07-29 20:30:24 字數 4146 閱讀 5387

datarow 模擬的是資料庫中的一行。使用 hasversion 和 isnull 屬性確定特定行值的狀態。

1. 新增行

建立新的 datarow,要使用 datatable 物件的 newrow 方法。然後,使用 add 方法將新的 datarow 新增到 datarowcollection 中。最後,呼叫 datatable 物件的 acceptchanges 方法以確認是否已新增。具體描述參考我另一篇文章 c# datatable。

private void createnewdatarow()

private datatable makenamestable()

///datarow workrow;

for (int i = 0; i <= 9; i++) 

2. 刪除行

您可通過呼叫 datarowcollection 的 remove 方法或呼叫 datarow 物件的 delete 方法,從 datarowcollection 中刪除 datarow。remove 方法將行從集合中移除。與此相反,delete 標記要移除的 datarow。在呼叫acceptchanges 方法時發生實際移除。通過呼叫 delete,您可在實際刪除行之前以程式設計方式檢查哪些行被標記為移除。具體描述參考我另外一篇文章 c# datatable。

private void demonstrateacceptchanges()

private datatable maketable()

*****===

使用 datarow 物件及其屬性和方法檢索、評估、插入、刪除和更新 datatable 中的值。datarowcollection 表示 datatable 中的實際 datarow 物件。

若要建立新的 datarow,請使用 datatable 物件的 newrow 方法。建立新的 datarow 之後,請使用 add 方法將新的 datarow 新增到 datarowcollection 中。最後,呼叫 datatable 物件的 acceptchanges 方法以確認是否已新增。

還可通過呼叫 datarowcollection 的 remove 方法或呼叫 datarow 物件的 delete 方法,從 datarowcollection 中刪除 datarow。remove 方法將行從集合中移除。與此相反,delete 標記要移除的 datarow。在呼叫 acceptchanges 方法時發生實際移除。通過呼叫 delete,可在實際刪除行之前以程式設計方式檢查哪些行被標記為移除。

下面的示例通過呼叫 datatable 物件的 newrow 方法建立新的 datarow。

[c-sharp]

private void createnewdatarow()  

private datatable makenamestable()  

*****===

.net framework 2.0 其他版本 

表示 datatable 中的一行資料。

命名空間:system.data

程式集:system.data(在 system.data.dll 中)

語法c#c++vb

public class datarow

j#public class datarow

jscript

public class datarow

備註datarow 和 datacolumn 物件是 datatable 的主要元件。使用 datarow 物件及其屬性和方法檢索、評估、插入、刪除和更新 datatable 中的值。datarowcollection 表示 datatable 中的實際 datarow 物件,datacolumncollection 中包含用於描述 datatable 的架構的 datacolumn 物件。使用過載的 item 屬性返回或設定 datacolumn 的值。

使用 hasversion 和 isnull 屬性確定特定行值的狀態,使用 rowstate 屬性確定行相對於它的父級 datatable 的狀態。

若要建立新的 datarow,請使用 datatable 物件的 newrow 方法。建立新的 datarow 之後,請使用 add 方法將新的 datarow 新增到 datarowcollection 中。最後,呼叫 datatable 物件的 acceptchanges 方法以確認是否已新增。有關將資料新增到 datatable 中的更多資訊,請參見 將資料新增到表中。

您可通過呼叫 datarowcollection 的 remove 方法或呼叫 datarow 物件的 delete 方法,從 datarowcollection 中刪除 datarow。remove 方法將行從集合中移除。與此相反,delete 標記要移除的 datarow。在呼叫 acceptchanges 方法時發生實際移除。通過呼叫 delete,您可在實際刪除行之前以程式設計方式檢查哪些行被標記為移除。有關更多資訊,請參見 從表中刪除行。

示例下面的示例通過呼叫 datatable 物件的 newrow 方法建立新的 datarow。

c#vb

private void createnewdatarow()

private datatable makenamestable()

繼承層次結構

system.object 

system.data.datarow

執行緒安全

該型別對於多執行緒讀操作是安全的。您必須使任何寫操作同步。

平台windows 98、windows 2000 sp4、windows ce、windows millennium edition、windows mobile for pocket pc、windows mobile for smartphone、windows server 2003、windows xp media center edition、windows xp professional x64 edition、windows xp sp2、windows xp starter edition

.net framework 並不是對每個平台的所有版本都提供支援。有關受支援版本的列表,請參見系統要求。

版本資訊

.net framework

受以下版本支援:2.0、1.1、1.0

.net compact framework

受以下版本支援:2.0、1.0

請參見參考

datarow 成員

system.data 命名空間

acceptchanges

adddatacolumncollection 類

datacolumn 類

datarowview

datatable

hasversion

isnull

item

newrow

datarowcollection

*****===

datarow dr = new datarow();  這樣是不能將datarow例項化的。

要例項化乙個datarow首先要例項化乙個datatable要確定datarow的結構如:

datatable dt = new datatable();

dt.column.add("c1");  

dt.column.add("c2");

...datarow dr = dt.newrow(); 

datarow的建構函式:

protected internal datarow (

datarowbuilder builder

)你看見了,他是乙個受保護的internal類。

internal 關鍵字是型別和型別成員的訪問修飾符。只有在同一程式集的檔案中,內部型別或成員才是可訪問的。

一、ms這麼做是有他的隱含意思在裡面的:

乙個table和他對應的row應該是有相同結構的,為了保證他們結構相同,就必須按照乙個統一標準來規範他們.要麼用table來規範row,那麼讓row去格式化table,ms選擇了前一種方式,這裡他們又隱含一層意思,那就是生成的順序,table比row先生成.

所以為了嚴格保證這種規範和生成順序,該建構函式就限制成了protected internal ,ok了,這麼做,你就是想把table和row結構不對應都不成了,因為他沒有留給你任何犯錯的機會

二、從上面的建構函式可以看出,實際上row結構的建立是datarowbuilder類負責的,而不是datarow類,datarow類實際負責對row的操作而不是建立。

*****===

學習後總結,總結後再學習

學習後總結,總結後再學習 2010年畢業以來,讀了幾百本書籍,包括it技術 管理 歷史 營銷 金融 心理等等,在讀某商學院mba一年後感覺有些東西還是要寫寫,除了能增加自己對某些知識和理論的理解外,也許其他人也碰巧想關注一下,了解這方面的東西。我所寫的都是一些簡單的概念層面的解釋,不會做太深入的闡述...

學習總結 近期acm學習的總結

開學已經乙個月了,對acm的學習也乙個月了,做了一下總結 對自己不好的地方的反省 1.開學一開始學的是stl,不得不說stl是乙個很好的東西,熟練的運用stl大大的減少了 量,也使演算法容易實現。但是我在用stl後使自己產生了一種惰性思維。在兩個星期的stl練習後,我發現自己變得越來越懶,不願意自己...

深度學習學習總結

北京大學人工智慧實踐 tensorflow2.0 學習1 6章 複習1 4章 第4章需要寫乙個部落格 寫4,5,6章 吳恩達深度學習第四步 卷積神經網路 學習1 2周 複習1 2周 殘差網路和inception網路不太懂,目前用不到 三四周是目標定位,人臉識別,神經風格轉換目前用不到 油管最新最熱t...