加列
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
加行
//方法1DataRow newRow = dt.NewRow();newRow[\"F1\"] = \"test1\";//不赋值则默认为空,全空则空行newRow[\"F2\"] = \"test2\";newRow[\"F3\"] = \"test3\";newRow[\"F4\"] = \"test4\";dt.Rows.Add(newRow);//方法2dt.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]);//删除指定datarowdt.Rows.RemoveAt(i);//根据索引删除//注意:datatable删除行时应使用for倒序循环删除,正序删除索引发生改变,引发异常
我是小赖,一个喜欢写代码的小伙子