7 C DataTbale詳細操作

2021-10-06 06:58:27 字數 2466 閱讀 3294

c# datatbale詳細操作

datatable dt = new datatable("table_ax");

//方式一(我覺得這種好)

dt.columns.add("column0", system.type.gettype("system.string"));

//方式二

datacolumn dc = new datacolumn("column0", typeof(string));

datacolumn dc = new datacolumn("column1", system.type.gettype("system.boolean"));

dt.columns.add(dc);

datarow dr = dt.newrow();

dr["column0"] = "ax";

dr["column1"] = true;

dt.rows.add(dr);

移除列:

dt.columns.remove("column0");

移除行:

1,使用datatable.rows.remove(datarow),或者datatable.rows.removeat(index);可以直接刪除行

2,datatable.rows[i].delete()。delete()之後需要datatable.acceptechanges()方法確認完全刪除,因為delete()只是將相應列的狀態標誌為刪除,還可以通過datatable.rejectchanges()回滾,使該行取消刪除。 注:

如果要刪除datatable中的多行,應該採用倒序迴圈datatable.rows。因為正序刪除時索引會發生變化。程式發生異常,很難預料後果。如果在for迴圈裡刪除行的話,最好是使用delete方法,不然會出現count變化的情況.迴圈完後再使用acceptchanges()方法提交修改,刪除掉標記為deleted的行

for (int i = dt.rows.count - 1; i >= 0; i--)

//判斷是否有資料if (dt.rows.count > 0)

datarow drs = dt.select("column1 is null");

datarow drss = dt.select("column0 = 'ax'"); 

//返回第一條

datarow dr = dt.select("column1 is null").first();

//複製乙個datatable(有資料)

datatable dtnew = dt.copy();

//複製乙個空的datatable(無資料)

datatable dtonlyscheme = dt.clone();

datarow droperate = dt.rows[0];

//方式一

droperate["column0"] = "axzhz";

droperate["column1"] = false;

//方式二droperate[0] = "axzhz";

droperate[1] = false;

//方式三dt.rows[0]["column0"] = "axzhz";

dt.rows[0]["column1"] = false;

//方式四dt.rows[0][0] = "axzhz";

dt.rows[0][1] = false;

dtonlyscheme.rows.add(dt.rows[0].itemarray);

system.io.stringwriter sw = new system.io.stringwriter();

system.xml.xmltextwriter xw = new system.xml.xmltextwriter(sw);

dt.writexml(xw);//此處datatable必須有名字

string s = sw.tostring();

dt.defaultview.rowfilter = "column1 <> true";

dt.defaultview.rowfilter = "column1 = true";

dt.defaultview.sort = "column0 ,column1 asc";

dt = dt.defaultview.totable();

bool flag = dt.columns.contains("ax");

string str =dt.rows[第幾行]["欄位名"].tostring(); 

string str =dt.rows[第幾行][第幾列].tostring();

//for迴圈

for (int i = 0; i < dt.rows.count; i++)

//foreach迴圈

foreach (datarow dr in dt.rows)

centos7 公升級cmake 詳細操作

編譯cmake檔案時,報錯 unknown cmake command continue 猜測這是 cmake 版本過低導致的,那麼就需要公升級 cmake 到更高的版本。下面是公升級 cmake 的步驟 解除安裝原有通過 yum 安裝的 cmake 你的路徑 export path path cm...

nandflash詳細操作

下面介紹讀操作,讀操作是以頁為單位進行的。如果在讀取資料的過程中不進行ecc校驗判斷,則讀操作比較簡單,在寫入讀命令的兩個週期之間寫入要讀取的頁位址,然後讀取資料即可。如果為了更準確地讀取資料,則在讀取完資料之後還要進行ecc校驗判斷,以確定所讀取的資料是否正確。在上文中我們已經介紹過,nandfl...

memcache詳細操作

memcache是danga.com的乙個開源專案,它是乙個高效能的分布式的記憶體物件快取系統,通過在記憶體裡維護乙個統一的巨大的hash表,能夠用來儲存各種格式的資料。php的memcache php 連線 mem new memcache mem connect 192.168.0.200 12...