zoukankan      html  css  js  c++  java
  • 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;
    斩后知
  • 相关阅读:
    1028 人口普查 (20分)
    1027 打印沙漏 (20分)
    1026 程序运行时间 (15分)
    1025 反转链表 (25分)
    1024 科学计数法 (20分)
    1023 组个最小数 (20分)
    1022 D进制的A+B (20分)
    1021 个位数统计 (15分)
    1020 月饼 (25分)
    1019 数字黑洞 (20分)
  • 原文地址:https://www.cnblogs.com/dyhao/p/14682225.html
Copyright © 2011-2022 走看看