一、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序列化与反序列化实例分析
c#高效率导出多维表头excel的实例代码
C++类和对象实例解析(二)
上述就是C#学习教程:C# DataTable的详细用法分享分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/905004.html