C 中DataTable使用技巧

2021-09-06 14:50:41 字數 4633 閱讀 3492

在專案中經常用到datatable,如果datatable使用得當,不僅能使程式簡潔實用,而且能夠提高效能,達到事半功倍的效果,現對datatable的使用技巧進行一下總結。

一、datatable簡介

(1)建構函式

ø         datatable()不帶引數初始化datatable類的新例項。

ø         datatable(stringtablename)用指定的表名初始化datatable類的新例項。

ø         datatable(stringtablename,stringtablenamespace)用指定的表名和命名空間初始化datatable類的新例項。

(2)常用屬性

ø         casesensitive指示表中的字串比較是否區分大小寫。

ø         childrelations獲取此datatable的子關係的集合。

ø         columns獲取屬於該錶的列的集合。

ø         constraints獲取由該錶維護的約束的集合。

ø         defaultview獲取可能包括篩選檢視或游標位置的表的自定義檢視。

ø         haserrors獲取乙個值,該值指示該錶所屬的dataset的任何表的任何行中是否有錯誤。

ø         minimumcapacity獲取或設定該錶最初的起始大小。該錶中行的最初起始大小。預設值為50。

ø         rows獲取屬於該錶的行的集合。

ø         tablename獲取或設定datatable的名稱。

(3)常用方法

ø         acceptchanges()提交自上次呼叫acceptchanges()以來對該錶進行的所有更改。

ø         begininit()開始初始化在窗體上使用或由另乙個元件使用的datatable。初始化發生在執行時。

ø         clear()清除所有資料的datatable。

ø         clone()轉殖datatable的結構,包括所有datatable架構和約束。

ø         endinit()結束在窗體上使用或由另乙個元件使用的datatable的初始化。初始化發生在執行時。

ø         importrow(datarowrow)將datarow複製到datatable中,保留任何屬性設定以及初始值和當前值。

ø         merge(datatabletable)將指定的datatable與當前的datatable合併。

ø         newrow()建立與該錶具有相同架構的新datarow。

二、datatable使用技巧

(1)createadatatable

datatabledt=newdatatable("table_ax");

(2)addcolumnsfordatatable

//method1

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

//method2

datacolumndc=newdatacolumn("column1",system.type.gettype("system.boolean"));

dt.columns.add(dc);

(3)addrowsfordatatable

//initializetherow

datarowdr=dt.newrow();

dr["column0"]="ax";

dr["column1"]=true;

dt.rows.add(dr);

//doesn'tinitializetherow

datarowdr1=dt.newrow();

dt.rows.add(dr1);

(4)selectrow

//searchthesecondrow如果沒有賦值,則用isnull來select

datarowdrs=dt.select("column1isnull");

datarowdrss=dt.select("column0='ax'");

(5)copydatatableincludedata

datatabledtnew=dt.copy();

(6)copydatatableonlyscheme

datatabledtonlyscheme=dt.clone();

(7)operateonerow

//對dt的操作

//method1

datarowdroperate=dt.rows[0];

droperate["column0"]="axzhz";

droperate["column1"]=false;

//method2

droperate[0]="axzhz";

droperate[1]=false;

//method3

dt.rows[0]["column0"]="axzhz";

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

//method4

dt.rows[0][0]="axzhz";

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

(8)evaluateanotherdatatable'srowtocurrentdatatable

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

(9)converttostring

system.io.stringwritersw=newsystem.io.stringwriter();

system.xml.xmltextwriterxw=newsystem.xml.xmltextwriter(sw);

dt.writexml(xw);

strings=sw.tostring();

(10)filterdatatable

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

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

(11)sortrow

dt.defaultview.sort="id,nameasc";

dt=dt.defaultview.totable();

(12)binddatatable

//繫結的其實是defaultview

gvtestdatatable.datasource=dt;

gvtestdatatable.databind();

(13)judgethedatatable』scolumnnameisastring

//判斷乙個字串是否為datatable的列名

dtinfo.columns.contains("ax");

(14)datatableconverttoxmlandxmlconverttodatatable

protectedvoidpage_load(objectsender,eventargse)

datatabledt_ax=newdatatable();

//dt_ax.columns.add("***",typeof(system.boolean));

//datarowdr=dt_ax.newrow();

//dr["***"]=true;

//dt_ax.rows.add(dr);

stringxml=convertbetweendatatableandxml_ax(dt_ax);

datatabledt=convertbetweendatatableandxml_ax(xml);

publicstringconvertbetweendatatableandxml_ax(datatabledtneedcoveret)

system.io.textwritertw=newsystem.io.stringwriter();

//iftablenameisempty,writexml()willthrowexception.

dtneedcoveret.tablename=dtneedcoveret.tablename.length==0?"table_ax":dtneedcoveret.tablename;

dtneedcoveret.writexml(tw);

dtneedcoveret.writexmlschema(tw);

returntw.tostring();

publicdatatableconvertbetweendatatableandxml_ax(stringxml)

system.io.textreadertrdatatable=newsystem.io.stringreader(xml.substring(0,xml.indexof("<?xml")));

system.io.textreadertrschema=newsystem.io.stringreader(xml.substring(xml.indexof("<?xml")));

datatabledtreturn=newdatatable();

dtreturn.readxmlschema(trschema);

dtreturn.readxml(trdatatable);

returndtreturn;

DataTable使用技巧總結

在專案中經常用到datatable,如果datatable使用得當,不僅能使程式簡潔實用,而且能夠提高效能,達到事半功倍的效果,現對datatable的使用技巧進行一下總結。一 datatable簡介 1 建構函式 datatable 不帶引數初始化datatable 類的新例項。datatable...

C 中DataTable的用法

分類 net 2009 03 11 16 16 175483人閱讀收藏 舉報 c dataset string constraints datatables 在專案中經常用到 datatable,如果datatable 使用得當,不僅能使程式簡潔實用,而且能夠提高效能,達到事半功倍的效果,現對 da...

C 中DataTable的用法

一 datatable 簡介 1 建構函式 datatable 不帶引數初始化 datatable 類的新例項。datatable string tablename 用指定的表名初始化 datatable 類的新例項。datatable string tablename,string tablena...