文章评分
次,平均分 :
创建列
1 2 3 4 |
DataTable dt = new DataTable("名单"); dt.Columns.Add("学号",typeof(System.Int16)); dt.Columns.Add("姓名",typeof(System.String)); dt.Columns.Add("班级",typeof(System.String)); |
新增行
1 2 3 4 5 |
DataRow dr = dt.NewRow(); dr["学号"]=2; dr["姓名"]="小明"; dr["班级"]="三年级二班"; dt.Rows.Add(dr); |
删除行
Delete
1 |
dt.Rows[i].Delete(); |
Remove
1 2 |
dt.Rows[i].Remove(dt.Rows[i]); dt.Rows[i].RemoveAt(i); |
区别
Delete()只是将相应的行标记为删除,需要使用AccepteChanges()方法确认删除,同时可以通过RejectChanges()方法撤销删除;而Remove(),或RemoveAt(),则是直接删除行。
注意
在DataTable中每删除一行,表中所有行的索引都会发生改变。在循环处理表中数据时,需要特别注意这一特性。如果需要对表中行进行删减操作,强烈建议采用倒序循环表中行。
1 2 3 4 5 6 7 8 |
for(int i=dt.Rows.Count-1;i>=0;i--)//倒序循环 { if(dt.Rows[i]["班级"].ToString().Trim()=="三年级二班") { dt.Rows[i].Delete();//删除行 } } dt.AccepteChanges();//确认删除 |
排序
1 2 3 |
DataView dv = dt.DefaultView; dv.Sort = "学号 DESC";// DESC:倒序排序(从大到小),ACS:正序排序(从小到大) dt= dv.ToTable(); |
筛选
Select(),可以带条件,如Select("Col1 like '%xx%'"),也可以排序,如Select("Col1 like '%xx%'",Col2)。
1 |
DataRow[] rows = dt.Select("班级='三年级二班'","学号 asc"); |
合并
可以逐行读取并写入目标表,也可以直接使用Merge()方法。
1 |
dt1.Merge(dt2); |
除特别注明外,本站所有文章均为交通人原创,转载请注明出处来自http://www.hijtr.com/csharp-datatable/
暂无评论