C#DataTable操作
Posted 金桂花季
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#DataTable操作相关的知识,希望对你有一定的参考价值。
1】 在DataSet中添加DataTable DataSet.Tables.Add(DataTable) 实例: DataSet ds=new DataSet(); DataTable table=new DataTable("学生表"); ds.Tables.Add(table); 2】从DataSet中读出DataTable DataTable=DataSet.Tables[0]或DataSet.Tables["表名"] 实例: DataTable table=ds[i]或DataTable table=ds["学生表"] //i为DataSet中的索引值,因为DataSet可存放多个DataTable,可以根据索引值来找DataTable或直接写DataTable的名称来找DataTable 3】添加行 DataTable t=new DataTable(); DataRow r=t.NewRow(); r["列名"]=列值; t.Rows.Add(r) ; 实例: DataTable:学生表 id name 1 xun 代码: DataTable t=new DataTable("学生表"); DataRow r=t.NewRow(); r["id"]=2; r["name"]=xun2; t.Rows.Add(r); 4】添加列 DataTable.Columns.Add("列名",Type.GetType("数据类型")) ; 5】从行中读列值 DataRow["列名"]或DataRow[DataColumn]; 6】从DataTable中读列值 DataTable table; a、table.Rows[i]["列名"] b、table.Rows[i][i] c、table[i].列名(列名不加引号) 7】读出特定的行 DataTable table; DataRow[] selectRow=table.Select("列名=‘"+存放特定的变量.ToString()+"‘"); 选择其中的一行:selectRow[索引]
删除DataTable中的行要注意索引问题,一般有两种方法: 1】用for循环时,注意计数器初始值为表长,自减循环。DataTable.Rows.RemoveAt(i)就要注意。 2】用DataTable的Select方法,注意该方法的参数是字符串筛选器 3】Delete()之后需要datatable.AccepteChanges()方法确认完全删除,因为Delete()只是将相应列的状态标志为删除,还可以通过datatable.RejectChanges()回滚,使该行取消删除。若要删除多行,可以连续用Delete(),然后采用AccepteChanges()方法确认删除。
DataTable dt = table.DefaultView.ToTable(); //文件数据 DataTable sorceDt = sorceDt = dateDs2.Tables[0]; //数据库数据 DataTable except = table.Clone(); //差集 //求差集数据 foreach (DataRow dr in dt.Rows) { DataRow[] dtemp = sorceDt.Select("DonationBarCode=‘" + dr["DonationBarCode"] + "‘ And StartTime=‘" + dr["StartTime"] + "‘"); if (dtemp.Length == 0) { DataRow dr2 = except.NewRow(); dr2 = dr; except.Rows.Add(dr2.ItemArray); } }
以上是关于C#DataTable操作的主要内容,如果未能解决你的问题,请参考以下文章
[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础