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 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();//创建为新的表格
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· 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 让容器管理更轻松!