zoukankan      html  css  js  c++  java
  • DataTable的几个函数

    1、调整DataTable列的顺序

    dt.Columns[1].SetOrdinal(0); //将第1列改成第0列

    2、复制DataRow

    使用Add方法复制DataRow时会遇到该行已属于另一个表,用ImportRow就可以了。

    dt.ImportRow(row);

    3、行列倒置函数

            public static DataTable ColumnToRow(DataTable src_dt, int columnIndex) //columnIndex 用来当作新列名的列
            {
                DataTable dt = new DataTable();
                dt.Columns.Add(src_dt.Columns[columnIndex].ColumnName);
                List<string> lstColumnName = new List<string>();
                foreach (DataRow dr in src_dt.Rows)
                {
                    if (lstColumnName.Contains(dr[columnIndex].ToString())) continue;
                    if (dr[columnIndex].ToString() == string.Empty) continue;
                    lstColumnName.Add(dr[columnIndex].ToString());
                    dt.Columns.Add(dr[columnIndex].ToString());
                }

                int n = src_dt.Columns.Count;
                for (int i = 0; i < n; i++)
                {
                    if (i == columnIndex) continue; //如果是被当作列名的列,则跳过

                    DataRow new_dr = dt.NewRow();
                    string columnName = src_dt.Columns[i].ColumnName;
                    new_dr[0] = columnName;

                    foreach (DataRow dr in src_dt.Rows)
                    {
                        if (dr[columnIndex].ToString() == string.Empty) continue;
                        string newColumnName = dr[columnIndex].ToString();
                        new_dr[newColumnName] = dr[columnName];
                    }

                    dt.Rows.Add(new_dr);
                }
                return dt;
            }

  • 相关阅读:
    Xamarin.Android开发实践(十八)
    Xamarin.Android开发实践(十七)
    smokeping网络监控
    Cobbler自动化部署
    在线编辑器KindEditor的使用
    前端之快速创建标签
    Tornado之自定义异步非阻塞的服务器和客户端
    算法基础知识之树、二叉树
    Tornado之实例和扩展
    Scrapy源码研究前戏
  • 原文地址:https://www.cnblogs.com/chshnan/p/2393629.html
Copyright © 2011-2022 走看看