C# 表复制和数据行的复制说明(Clone、ImportRow 、Copy )
/// <summary>
/// 构建测试数据表
/// </summary>
/// <returns></returns>
private DataTable GetTB()
{
//定义表结构
DataTable dt = new DataTable();
dt.Columns.Add("FactoryId");
dt.Columns.Add("FactoryName");
dt.Columns.Add("FactoryDescribe");
dt.Columns.Add("FactoryCode");
dt.Columns.Add("IsActivation");
dt.TableName = "TbFactor";
//填充数据
dt.Rows.Add("1", "河北钢铁", "集团总公司", "1000", 1);
dt.Rows.Add("2", "唐山钢铁", "集团子公司", "1001", 0);
dt.Rows.Add("3", "宣化钢铁", "集团子公司", "1002", 0);
dt.Rows.Add("4", "宝钢", "宝山钢铁集团", "2000", 1);
return dt;
}
/// <summary>
/// 表的复制(结构和数据)及行的复制示例
/// </summary>
private void TableDemo()
{
DataTable dt = GetTB();
DataTable dt2 = dt.Clone();//克隆表结构
DataTable dt3 = dt.Copy();//复制表结构和数据
if (dt.Rows.Count > 0)
{
// 示例1:复制指定的行到新表
foreach (DataRow dr in dt.Rows)
{
if (dr["FactoryId"].ToString() == "1" && dr["IsActivation"].ToString() != "1")
{
dt2.ImportRow(dr);//复制行数据到新表
}
}
//示例2: Copy from the results of a Select method
/ /select返回的是一个行数组DataRow[]
foreach (DataRow dr in dt.Select("FactoryId='1'"))
{
dt2.ImportRow(dr);//复制行数据到新表
}
//示例3:Copy from the results of a DataView.
DataView dv = dt.DefaultView;
dv.RowFilter = "FactoryCode = '1002'";
foreach (DataRowView rv in dv)
{
dt2.ImportRow(rv.Row););//复制行数据到新表
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2009-12-01 将DataTable和图片导出到Excel中