欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#DataTable部分用法(加列,加行,取数据)

程序员文章站 2022-05-01 16:51:31
加列DataTable dt = new DataTable(); dt.Columns.Add("F1");//“F1为列名” dt.Columns.Add("F2"); dt.Columns.Add("F3"); dt.Columns.Add("F4"); //C#Datatable提供Clone方法,可以用于复制其他的datatable //sqlsugar提供ToDataTable()方法,提供从数据库获取的数据转为datatable加行...

加列

	DataTable dt = new DataTable();
  	 dt.Columns.Add("F1");//“F1为列名”
     dt.Columns.Add("F2");
     dt.Columns.Add("F3");
     dt.Columns.Add("F4");
    //C#Datatable提供Clone方法,可以用于复制其他的datatable
    //sqlsugar提供ToDataTable()方法,提供从数据库获取的数据转为datatable

加行

//方法1
	DataRow newRow = dt.NewRow();  
     newRow["F1"] = "test1";//不赋值则默认为空,全空则空行
     newRow["F2"] = "test2";
     newRow["F3"] = "test3";
     newRow["F4"] = "test4";
     dt.Rows.Add(newRow);
//方法2
 dt.Rows.Add("test1", "test2", "test3", "test4");//参数个数必须和datarow的列数一致,顺序一致
//方法3,假设dt2和dt是同列的表
//var dt2 = dt.Clone();
 dt.Rows.Add(dt2.Rows[i].ItemArray);//必须取ItemArray,直接取dt2的行数则会提示行属于另外一个表
 

取行

  DataRow row = dt.Rows[i];/i为索引,从0开始	

赋值

dt.Rows[i][j]="test1";//通过索引得到单元格进行赋值
dt.Rows[i]["F1"]="test1";//通过列名得到单元格进行赋值

取列

var columnvalue =dt.Rows[i][j];//通过索引获取值
var columnvalue =dt.Rows[i]["F1"];//通过列名获取值
var listcolumn = (from d in dt.AsEnumerable() select d.Field<string>("F1")).ToList();//取整列

筛选(Select方法)

//dt.Select可理解为sql语句  select * from dt where <condition>
// dt.Select("condition");
//例:取列F1为空的行
var dt3 = dt.Select("F1 is null");//dt3 为DataRow[] 

排序

var dv =dt.DefaultView;//datatable视图
dv.Sort="F1";//默认升序
dv.Sort="F1 desc";

删行

dt.Rows.Remove(dt.Rows[0]);//删除指定datarow
dt.Rows.RemoveAt(i);//根据索引删除
//注意:datatable删除行时应使用for倒序循环删除,正序删除索引发生改变,引发异常

我是小赖,一个喜欢写代码的小伙子

本文地址:https://blog.csdn.net/qq_36938424/article/details/107312111