C# 将一个DataTable的结构直接复制到另一个DataTable
DataTable.Clone();//仅复制表结构
DataTable.Copy();//复制表结构及数据
DataTable.ImportRow(DataRow);//复制行数据到新表
DataRow[] rows = DataTable.Select("Name like'%" + Name + "%'");
rows.CopyToDataTable();//将DataRow[]转化为DataTable //这条命令执行后就是一个dataTable了哈
看起来很简单的几行代码,有事可以派上大用处。
下面这个代码是我处理一些告警信息,然后以表的方式插入数据库(这段代码省略),一个方法都用上了。
DataTable dt=new DateTable();
DataRow dr = dt.NewRow();
dr["描述"] = strs[0];
dr["发生时间"] = strs[1];
dr["恢复时间"] = strs[2];
dr["对象名称"] = strs[13];
dt.Rows.Add(dr);
//只筛选当天恢复的告警,减少插入数据库数据 ,这里做了一个时间筛选
string exp = string.Format("恢复时间 > '{0}'", DateTime.Now.ToShortDateString());
DataRow[] arrRow = dt.Select(exp);
DataTable ndt = new DataTable();
ndt = dt.Clone(); //复制表结构
ndt=arrRow.CopyToDataTable();
//去除重复,适用于程序有一段时间没工作,需要处理多个告警文件
DataView dv = new DataView(ndt);
ndt = dv.ToTable(true, new string[] { "描述", "发生时间", "恢复时间", "对象名称"});