C# 二维数组 转换成 DataTable

TreasureZ 2019-12-22

C# 数据转换

Overview

C# 窗体操作中,有些比较特别的操作。但是为了方便我们不得不使用一些比较特别的手段。

C#中二维数组转DataTable

首先,我们看一下我对二维数组的数据处理。这次我是将Excel表格中的数据,读成二维数组的格式的。看一下代码:

从Excel中读取数据并转换成二维数组

string FileNmae = System.IO.Directory.GetCurrentDirectory();
Excel.Application Excel_Reader = new Excel.Application();
Excel.Workbook Excel_Reader_Books = Excel_Reader.Workbooks.Open(FileNmae + "\\Data.xlsx");
Excel.Worksheet Excel_Reader_sheets = Excel_Reader_Books.Worksheets[1];
int rows = Excel_Reader_sheets.UsedRange.Rows.Count;
int columns = Excel_Reader_sheets.UsedRange.Columns.Count;

object[,] Data = new object[rows, columns];
for (int i = 0; i < rows; i++)
{
    for (int j = 0; j < columns; j++)
    {
        Data[i, j] = Excel_Reader_sheets.Cells[i + 1, j + 1].Text;
    }
}
new FrmAndroid(Data).ShowDialog();

这部分内容和本章没有关系,不做过多的赘述,如果想了解可以看我以前的博客

C# 将二维数组读取成DataTable

我们先来看一下代码:

public partial class FrmAndroid : Form
{
    object[,] data;
    public FrmAndroid(object[,] data)
    {
        InitializeComponent();
        this.data = data;

        DataTable dtSource = new DataTable();

        //显示遍历我们二维数组的第二维,他是最为我们的列被添加
        for (int i = 0; i < this.data.GetLength(1); i++)
        {
            DataColumn dataColumns = new DataColumn(i.ToString(), data[0, 0].GetType());
            dtSource.Columns.Add(dataColumns);
        }
        //添加完成后,我们将整个二维数组循环遍历。并且通过嵌套遍历的方式获取其中的值,并添加到DataTable中去。
        for (int i = 0; i < data.GetLength(0); i++)
        {
            DataRow dtRows = dtSource.NewRow();
            for (int j = 0; j < data.GetLength(1); j++)
            {
                dtRows[j.ToString()] = data[i, j];
            }
            dtSource.Rows.Add(dtRows);
        }
        dataGridView1.DataSource = dtSource;
    }
}

这边的二维数组我是从前一个窗体传值传过来的。

步骤详解

  1. 首先,我们创建一个DataTable来接收我们的数据。
  2. 然后我们通过for循环我们的二维数组的第二维来填充我们的列。
  3. 填充完成后,我们通过嵌套循环的方式来向DataTable 中添加数据。
  4. 最后实现数据绑定。

相关推荐