/// <summary>
/// 将DataGridViewRows转换为DataTable数据
/// </summary>
/// <param name="Listrows">DataGridView的行集合</param>
/// <param name="dtSource">源数据表</param>
/// <param name="colum">映射关系</param>
/// <param name="dtDestination">目的数据表</param>
/// <returns>返回新的DataTable</returns>
public static DataTable Getdatatable(DataGridViewRowCollection Listrows, DataTable dtSource, string[,] colum, DataTable dtDestination)
{
// string[,] colum = { { "id1", "id2" }, { "name1", "name2" } }; //colum是源DataGridViewRow到目标DataRow的映射关系
DataTable dtNew = dtSource.Clone();//复制表结构
foreach (DataGridViewRow dgvr in Listrows)
{
DataRow dataRow = (dgvr.DataBoundItem as DataRowView).Row; //转换成数据行DataRow
dtNew.ImportRow(dataRow); //添加DataRow到DataTable
}
string[] copy = new string[colum.Length / 2];
for (int i = 0; i < colum.Length / 2; i++)
{
copy[i] = colum[i, 0]; //获取源数据要的列
}
DataTable dtNew2 = dtNew.DefaultView.ToTable(false, copy);//复制源表结构和数据,并只保留copy数据中的列
if (dtDestination != null)
{
for (int j = 0; j < dtNew2.Rows.Count; j++)
{
DataRow row = dtDestination.NewRow();
for (int f = 0; f < colum.Length / 2; f++)
{
row[colum[f, 1]] = dtNew2.Rows[j][colum[f, 0]]; //将源表中每行的各列数据复制到对应的目的表的行中
}
dtDestination.Rows.Add(row); //添加到目的表
}
}
return dtDestination;
}
分享到:
相关推荐
C# 维数组转换为DataTable 的三个方法 来了解用C# 操作excel数据转变到dataset 进而到datatable的方式
list转换为dataTable,list转换为dataTable
DataGridView或DataTable导出为Excel-处理了数字字符串去掉前面0的问题-支持进度条
把实体类数组转换为DataTable C#
将xml字符串转换为datatable将xml字符串转换为datatablev
根据csv文件的路径把该文件转换为datatable
把DataReader转换成DataTable的方法 把DataReader转换成DataTable的方法
把datagridview 转换成 datatable 或者 dataset
将DataGridView或DataTable导出为Excel支持进度条[参考].pdf
Dataview转换成Datatable
将指定Excel文件中的数据转换成DataTable的源代码
主要介绍了C#实现将json转换为DataTable的方法,涉及C#操作json及DataTable的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
把实体类数组转换为DataTable C#
ArrayList转化为DataTable数据加载转换方便程序的灵活运用!
解决 datatable 不按字段顺序 绑定 datagridview的问题
最近在项目中用到泛型接口通过反射转换为DataTable,查了些资料看到的解决方法不是太对,这里有我解决后的方法,希望对大家有帮助!
将DataGridView或DataTable导出为Excel支持进度条将
将object 对象转换为datatable
将IList转换成DataTable和DateSet的类