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;
    斩后知
  • 相关阅读:
    redis 数据迁移
    redis
    Redis集群的三种模式
    Golang 协程 (goroutine) 与通道 (channel)
    Python生成器next方法和send方法区别
    python 文件
    Tornado 异步以及非阻塞的I/O
    python 多进程和多线程3 —— asyncio
    利用CSS改变图片颜色的100种方法!
    jquery获取div的位置
  • 原文地址:https://www.cnblogs.com/dyhao/p/14682225.html
Copyright © 2011-2022 走看看