C# 二维数组 转换成 DataTable

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. 最后实现数据绑定。

原文地址:https://www.cnblogs.com/cao-1/p/12079131.html

时间: 2024-11-09 15:58:29

C# 二维数组 转换成 DataTable的相关文章

PHP二维数组转换成一维数组,一个变量多个二维数组转换成一维数组,PHP二维数组(或任意维数组)转换成一维数组的方法汇总,array_reduce(); array_walk_recursive(); array_map();

方法汇总: 1. array_reduce函数法 //用array_reduce()函数是较为快捷的方法: $result = array_reduce($user, function ($result, $value) { return array_merge($result, array_values($value)); }, array()) 2. array_walk_recursive函数法 //用array_walk_recursive()函数就非常灵活,可以把任意维度的数组转换成一

将二维数组转换成一维数组(基于reduce)

reduce:不改变原数组,返回一个新的数组.就是遍历数组元素,从头开始,依次往下,第一个参数是上一次的返回值,第二个参数是下一个数组元素,首次的时候第一个和第二个参数分别是 array[0],  array[1] : let flat=[[1,2,3],[4,5,6],[6,7,8]].reduce(function(prev,next){ return prev.concat(next);//循环将数组进行拼接 }); console.log(flat); 原文地址:https://www.

将二维数组转换成一维,键值互换

1 $arr_Array = array_reduce($rankLevel,function(&$arr_Array,$val) { 2 $arr_Array[$val['level']] = $val['name']; 3 return $arr_Array; 4 }); 原文地址:https://www.cnblogs.com/ghjbk/p/9689802.html

Python 迭代器&amp;生成器,装饰器,递归,算法基础:二分查找、二维数组转换,正则表达式,作业:计算器开发

本节大纲 迭代器&生成器 装饰器  基本装饰器 多参数装饰器 递归 算法基础:二分查找.二维数组转换 正则表达式 常用模块学习 作业:计算器开发 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等类似公式后,必须自己解析里面的(),+,-,*,/符号和公式,运算后得出结果,结果必须与真实的计算器所得出的结果一致 迭代器&

JAVA描述算法和数据结构(01):稀疏数组和二维数组转换

一.基本简介 1.基础概念 在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵:与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵.定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度. 2.处理方式 1).记录数组一共有几行几列,有多少个不同的值 2).把具有不同值的元素的行列及值记录在稀疏数组中,可以缩小程序代码的复杂度. 3.图解描述 稀疏数组表示 [0] 3 4 4 二维数组,3行,4列,4个非0的值: [1] 1 2 2 一行

JAVA描述算法和结构(01):稀疏数组和二维数组转换

本文源码:GitHub·点这里 || GitEE·点这里 一.基本简介 1.基础概念 在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵:与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵.定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度. 2.处理方式 1).记录数组一共有几行几列,有多少个不同的值 2).把具有不同值的元素的行列及值记录在稀疏数组中,可以缩小程序代码的复杂度. 3.图解描述 稀疏数组表示 [0] 3 4 4 二维

二维数组转化成一维指针

二维数组转化为一维指针来使用本实例用到了随机数,链表生成,遍历,有待扩展 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<time.h> 4 #include<math.h> 5 //定义个结构体Emp用来存放员工信息 6 typedef struct Emp 7 { 8 int eno; 9 char *ename; 10 int dno; 11 Emp *next; 12 13 }emp,*pemp

php 二维数组转换成树状数组

<?php/** * @param array $list 要转换的结果集 * @param string $pid parent标记字段 * @param string $level level标记字段 */function list_to_tree($list, $pk='id', $pid = 'pid', $child = 'listArea', $root = 0) { //创建Tree $tree = array(); if (is_array($list)) { //创建基于主键的

PHP 将二维数组转成一维数组

$authArrs = array();  //待转的数组 $authIds = array(); //声明一个空数组 array_walk_recursive($authArrs, function($value) use (&$authIds) { array_push($authIds, $value); }); 原文地址:https://www.cnblogs.com/soiq-1123/p/9450993.html