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

首頁 > 開發 > 綜合 > 正文

關于DataRow和DataColumn的一點個人簡單理解

2024-07-21 02:23:18
字體:
來源:轉載
供稿:網友
中國最大的web開發資源網站及技術社區,
ps:其實這個放在這里只是當作一個我對于自己不懂的地方所作的一個記錄而已。如果有什么錯誤的或者不當的地方歡迎大家指正。

關于datarow和datacolumn,其實就是datatable的行與列,作為datatable的兩個集合元素存在,用類似于坐標系里x與y的方法確定唯一的表值。
本來以為兩個都是同等性質的,不過無意中的問題說明了它們不是單純的差不多。
使用sql語句建立表,但忘記了寫進內容:create table testtable(id int primary key,description char(30));然后用datareader當然什么都不會返回。
用vs.net 2003的server explorer查看表,并沒提示錯誤。有列,但沒有行內容,也就是說這樣的“空表”是可以存在的。那試著換一下sql語句:create table testtable;或者create table testtable();都提示語法錯誤。由此可見作為表的基礎是列。
又由datareader的工作方式來看,是個以行為元素遍歷的過程,其中的數據成員是依列進行分組,輸出也就是兩個嵌套的循環:
foreach (datarow i in dt.rows)
{
foreach (datacolumn j in dt.columns)
{
console.write("/t{0}",i[j]);
}
console.writeline();
}
所有行都以列為結構,其實訪問其實是在訪問行,列只是制定其數據所在的位置名稱,可以抽象成這樣:
struct row
{
type column_1;
type column_2;
...
type column_n;
}
由此引出了一個建立在上面的問題:行與列在表里的添加。
1.datarow的添加
比較常規,就是添加元素而已,可以看作是把上面的row[]添加一個元素。
具體方法大概如下:
datarow newrow=dt.newrow(); //調用datatable dt方法newrow()聲明建立一個新行,得到一個datarow實例
...
newrow["(column name...)"]="..."; //為datarow寫入數據
...
dt.rows.add(newrow); //添加進dt
這樣就完了。
2.datacolumn的添加
似乎也簡單。事實上卻是dt里并沒有newcolumn()這個方法。
兩種思路:
a.在sql里面內建,這種思路在這里暫時不討論,有興趣的可以試一下;
b.在程序里面找到類似的add()方法調用;
這里有必要說明一下datacolumn和datacolumncollection兩個類的關系:
實際上表建立框架的是datacolumncollection,是datacolumn的一個集合,包含一組column對象,也就是說,要為表添加一列,需要在表框架的datacolumncollection上調用add()方法而不是在dt上添加作為遍歷的元素,因為列獨立出來其實也是以行->列的方式遍歷的。思路有了,于是具體實現如下:
datacolumncollection dcc=ds.tables["employees"].columns; //dataset ds,返回datacolumncollection對象集合
datacolumn newcolumn=new datacolumn(); //建立一個新列
newcolumn=dcc.add("fullname",system.type.gettype("system.string"),"firstname+' '+lastname"); //向表employees里插入列,在這里用的是datacolumncollection.add(string columnname,type columntype,string expression)方法插入列,這里的expression是指的建立的新列的值建立規則
至此,列插入結束。

作為一個小小的討論,datarow和datacolumn這樣簡單介紹一下,希望能對大家有點幫助。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 锦州市| 洪洞县| 沁源县| 囊谦县| 精河县| 阿合奇县| 息烽县| 淄博市| 和静县| 田阳县| 黑河市| 平陆县| 芮城县| 平顶山市| 昌黎县| 连州市| 丹凤县| 峨眉山市| 攀枝花市| 偃师市| 孝昌县| 淳安县| 宿州市| 绵阳市| 大连市| 增城市| 尼勒克县| 望奎县| 莱芜市| 嘉峪关市| 隆安县| 江油市| 莲花县| 安庆市| 海盐县| 巴彦淖尔市| 渝中区| 通城县| 抚顺县| 塔河县| 进贤县|