Datatable日常操作

移除:DataTable.Columns.Remove("colName");

取列:DataTable dt = DataTable.DefaultView.ToTable(false, new string[] { "colName1", "colName2" });

取行:DataTable  dt=new DataView(table, "过滤条件", "排序字段", DataViewRowState.None).ToTable();

行赋值:dt.Rows[i].ItemArray= dtNew. Rows[i].ItemArray;

DataTable dt;

DataTable dtNew;

dtNew= dt.Copy();
dtNew.Columns["Column"].ColumnName = "ColumnName";
DataTable dt = new DataTable();
//添加三列
dt.Columns.Add("col1");
dt.Columns.Add("col2");
dt.Columns.Add("col3");
//添加一行数据
dt.Rows.Add(1,2,3);
//把第三列放到第一的位置
dt.Columns["col3"].SetOrdinal(0);
 
创建列(列类 DataColumn 需要实例化,dataTable的属性:Column 方法Add(列的实例化对象) )

//创建一个空列,先实例化,后添加
DataColumn dataColumn = new DataColumn();//实例化列类(DataColumn)
dataTable1.Columns.Add(dataColumn);//将一个空列添加到DataTable
//创建一个带有列名和列内数据类型的列,边实例化 边添加
dataTable1.Columns.Add("列名",typeof(string));
//先实例化 后添加
DataColumn dataColumn1 = new DataColumn("列名", typeof(string));
dataTable1.Columns.Add(dataColumn1);

创建行(利用DataTable的newRow方法创建,利用DataTable的属性:Rows 方法:Add来创建Add(另一个表的Rows[i].ItemArry/具体的内容))

//创建空行
DataRow dataRow = dataTable1.NewRow();//与创建列不同,行的创建利用的DataTable的方法(行的类为Datarow)
dataTable1.Rows.Add();
//通过行框架创建并赋值
dataTable1.Rows.Add("aaaa" new object[]{内容});(注意和列的定义相符合)
//利用赋值另一个DataTable的值来创建
dataTable1.Rows.Add(datatable2.Rows[i].ItemArray);

对DataTable的赋值

//利用行的中列的位置赋值(类似数组)
DataRow dataRow = datatable2.NewRow();//创建了一行
dataRow[0] = 2;//对该行第一列赋值
//利用行中列的名称进行赋值
dataRow["列名"] = 2;//对该行的名称为“列名”的列赋值(datatable.column.add("列名",列的数据类型))即可创建一个有名的列
//对DataTable根据位置赋值
dataTable1.Rows[0][0] = 1;//对datatabe中第一行第一列赋值
//对DataTable 根据位置和列名进行赋值
dataTable1.Rows[0]["列名"] = 1;//对DataTable中第一行的列名为“列名‘进行赋值

从DataTable中取值

string name = dataTable1.Rows[0][0].ToString();//把DataTable中的第一个数字赋值给那么
从DataTable中筛选行(列)(DataTable的属性;Select 、like /' 李'模糊查询 、rows[] 表示一行 row[][] 表示一个数)
 //选择"列1"为空的行
 DataRow[] dr = dataTable1.Select("列1=null");
            //选择列1 为5 的行的集合
  DataRow[] dr1 = dataTable1.Select("列1=5");
            //选择列1包含'李"的行的集合
  DataRow[] dt2 = datatable2.Select("列1 like '李'");
从DataTable中删除行(Remove Removeat 两个方法,和Select、Add一样,datatable.rows.方法名)

//利用dataTable.rows.remove()方法删除行
datatable2.Rows.Remove(datatable2.Rows[0]);//删除第一行的数
//利用DataTable.rows.Removeat()方法删除
datatable2.Rows.RemoveAt(0);//删除第一行的数 //利用循环删除多行时,应采用倒序,顺序编号发生变化
for (int i = datatable2.Rows.Count; i > 0; i--)
{
datatable2.Rows.RemoveAt(i);
}

复制表

//先创建后复制
DataTable ta = new DataTable("表名");
ta = datatable2.Copy();
//边创建边复制
DataTable ta1 = datatable2.Copy();
//只复制格式不要数据——先复制后清空
DataTable dataTable3 = new DataTable();
dataTable3 = datatable2.Copy();
dataTable3.Clear();
//只复制格式不要数据——克隆
DataTable dataTable4 = datatable2.Clone();
//只要表中的一行
DataTable dataTable5 = datatable2.Copy();
dataTable5.Clear();
dataTable5.ImportRow(datatable2.Rows[0]);//加入另一表的第一行

表排序

DataTable table = new DataTable("排序表");
table.Columns.Add("ID列名",typeof(int));//ID列
table.Columns.Add("Name", typeof(string));//Name列
table.Columns.Add("Age", typeof(int));//Age列
table.Rows.Add(new object[] { 1, "李", 20 });//第一行(与列想对应)
table.Rows.Add(new object[] { 2,"张",21});//第二行
//获取表试图
DataView dataView = table.DefaultView;
//利用Sort属性,排序
dataView.Sort = "ID DESC";//ID倒序
dataView.ToTable();//创建为新的表格

posted @   龙丶谈笑风声  阅读(228)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示