Csharp/C#教程:C# DataTable的详细用法分享分享

一、DataTable简介   

(1)构造函数
DataTable()  不带参数初始化DataTable类的新实例。
DataTable(stringtableName) 用指定的表名初始化DataTable类的新实例。
DataTable(stringtableName,stringtableNamespace)用指定的表名和命名空间初始化DataTable类的新实例。
(2)常用属性
CaseSensitive   指示表中的字符串比较是否区分大小写。
ChildRelations  获取此DataTable的子关系的集合。
Columns            获取属于该表的列的集合。
Constraints       获取由该表维护的约束的集合。
DataSet              获取此表所属的DataSet。DataSet相关信息,可见我以前的一篇文章《数据访问(2)-DataSet》
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
DataRow[]drs=dt.Select(“column1isnull”);
DataRow[]drss=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(“Sex”,typeof(System.Boolean));
//DataRowdr=dt_AX.NewRow();
//dr[“Sex”]=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;
}

您可能感兴趣的文章:C#中DataTable删除行的方法分析C#实现Datatable排序的方法C#使用DataSetDatatable更新数据库的三种实现方法C#获取变更过的DataTable记录的实现方法c#扩展datatable转json示例C#中DataTable排序、检索、合并等操作实例c#的datatable转list示例c#将list类型转换成DataTable方法示例C#对DataTable里数据排序的方法c#DataTable与不同结构实体类转换的方法实例C#中datatable序列化与反序列化实例分析

标签: ble ab le

c#高效率导出多维表头excel的实例代码

C++类和对象实例解析(二)

上述就是C#学习教程:C# DataTable的详细用法分享分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/905004.html

(0)
上一篇 2021年10月22日
下一篇 2021年10月22日

精彩推荐