DataTable 创建并赋值全过程 List转DataTable

有一个List数据源,需要转成DataTable:

基本步骤:

1、创建一个新的DataTable
2、创建DataTable的各个列(DataTable.Columns)
3、单行数据赋值(DataRow):通过名称赋值
4、单行数据添加到新的DataTable中(DataTable.Rows.Add(dr.ItemArray))

 

示例代码:

bool isNewTable = true;
/*省略部分代码*/
int FieldCount = sqlDr.FieldCount;
DataTable newDt = new DataTable();
//创建表的各列
for (int i = 0; i < FieldCount; i++)
{
    var name = sqlDr.GetName(i);
    var TypeName = sqlDr.GetDataTypeName(i);
    var FieldType = sqlDr.GetFieldType(i);
    var data = sqlDr[i];//.ToString()

    //加一列
    //dt.Columns.Add(name, System.Type.GetType("System.String"));
    newDt.Columns.Add(name, FieldType);
    if (isNewTable)
    {
        retDt.Columns.Add(name, FieldType);
    }    
}
//单行数据赋值
DataRow dr = newDt.NewRow();
for (int i = 0; i < FieldCount; i++)
{
    var name = sqlDr.GetName(i);
    var TypeName = sqlDr.GetDataTypeName(i);
    var FieldType = sqlDr.GetFieldType(i);
    var data = sqlDr[i];//.ToString()                        
    dr[name] = data; //通过名称赋值
                     //dr[i] = data;//通过索引赋值

}
newDt.Rows.Add(dr.ItemArray);
//一行数据
//retDt.ImportRow(newDt.Rows[0]);
retDt.Rows.Add(dr.ItemArray);

/*省略部分代码*/
isNewTable = false;

 

posted @ 2021-04-20 18:06  深海地平线  阅读(519)  评论(0编辑  收藏  举报