刚刚碰到对DataTable的操作,记录一下两个方法,或许对你有用
 
/// <summary>
/// 给已有DataTable的首列加上序号列
/// </summary>
/// <param name="srcTable">源数据表</param>
/// <returns>结果数据表</returns>
private DataTable GetDataTable(DataTable srcTable)
{
    DataTable dstntnTable = new DataTable();
    dstntnTable.Columns.Add("Id", typeof(Int32));
    for (int i = 0; i < srcTable.Columns.Count; i++)
        dstntnTable.Columns.Add(srcTable.Columns[i].ColumnName, srcTable.Columns[i].DataType);
    int srcColCount = srcTable.Columns.Count;
    int srcRowCount = srcTable.Rows.Count;
    int dstntnRowCount = 0;
    for (int j = 0; j < srcRowCount; j++)
    {
        DataRow newRow = dstntnTable.NewRow();
        newRow[0] = (++dstntnRowCount);
        for (int k = 0; k < srcColCount; k++)
            newRow[k + 1] = srcTable.Rows[j][k];
        dstntnTable.Rows.Add(newRow);
    }
    return dstntnTable;
}
 
/// <summary>
/// 取出指定数据表中指定列数据并在首列加上编号列
/// </summary>
/// <param name="srcTable">源数据表</param>
/// <param name="para">需要取出源数据表的列名</param>
/// <returns>结果数据表</returns>
private DataTable GetDataTable(DataTable srcTable, params string[] para)
{
    DataTable dstntnTable = new DataTable();
    dstntnTable.Columns.Add("Id", typeof(Int32));
    for (int i = 0; i < para.Length; i++)
        dstntnTable.Columns.Add(para[i], srcTable.Columns[para[i]].DataType);
    int srcRowCount = srcTable.Rows.Count;
    int dstntnRowCount = 0;
    for (int j = 0; j < srcRowCount; j++)
    {
        DataRow newRow = dstntnTable.NewRow();
        newRow["Id"] = (++dstntnRowCount);
        for (int k = 0; k < para.Length; k++)
            newRow[para[k]] = srcTable.Rows[j][para[k]];
        dstntnTable.Rows.Add(newRow);
    }
    return dstntnTable;
}

相关文章:

  • 2021-10-09
  • 2022-02-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-25
  • 2021-09-29
  • 2021-10-03
  • 2021-07-21
  • 2022-12-23
相关资源
相似解决方案