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

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

  1. php将二维数组转换成我想要的一维数组

    使用方法array_column($array,b,$arr): 参数说明:$array是我们原始的二维数组,B是我们想要的values,c是key 举个栗子:这是我原来的二维数组 这是我需要的一维数 ...

  2. php 将一个二维数组转换成有父子关系的数组

    <?php /** * Tree 树型类(无限分类) * * @author Kvoid * @copyright http://kvoid.com * @version 1.0 * @acce ...

  3. PHP中将二维数组 转换成字符串

    function arr_to_str($arr) { $t ='' ; foreach ($arr as $v) { $v = join(",",$v); // 可以用implo ...

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

    reduce:不改变原数组,返回一个新的数组.就是遍历数组元素,从头开始,依次往下,第一个参数是上一次的返回值,第二个参数是下一个数组元素,首次的时候第一个和第二个参数分别是 array[0],  a ...

  5. Python中如何将二维列表转换成一维列表

    已知:a = [(4,2,3), (5, 9, 1), (7,8,9)]希望将二维列表转换成一维列表:["4,2,3", "5, 9, 1", "7, ...

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

    本节大纲 迭代器&生成器 装饰器  基本装饰器 多参数装饰器 递归 算法基础:二分查找.二维数组转换 正则表达式 常用模块学习 作业:计算器开发 实现加减乘除及拓号优先级解析 用户输入 1 - ...

  7. C++笔记-数组指针/二维数组转换指针

    参考资料: 1. 作者 BensonLaur  :https://www.cnblogs.com/BensonLaur/p/6367077.html 2. https://blog.csdn.net/ ...

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

    本文源码:GitHub·点这里 || GitEE·点这里 一.基本简介 1.基础概念 在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵:与之相反, ...

  9. Java二维数组转成稀疏sparsearray数组

    稀疏数组 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组. 稀疏数组的处理方法是: 记录数组一共有几行几列,有多少个不同的值 把具有不同值的元素的行列及值记 ...

随机推荐

  1. 在linux环境下重启oracle数据库,解决密码过期的问题

    (1) 以oracle身份登录数据库,命令:su – oracle (2) 进入Sqlplus控制台,命令:sqlplus /nolog (3) 以系统管理员登录,命令:connect /as sys ...

  2. SQL Server如何通过Page_ID找到对应的表

    其实本篇文章算是翻译Finding a table name from a page ID这篇文章,只是不想直接翻译.用自己的理解叙说出来.算是对上一篇博客"SQL Server如何找出一个 ...

  3. 梁敬彬老师的《收获,不止SQL优化》,关于如何缩短SQL调优时间,给出了三个步骤,

    梁敬彬老师的<收获,不止SQL优化>,关于如何缩短SQL调优时间,给出了三个步骤, 1. 先获取有助调优的数据库整体信息 2. 快速获取SQL运行台前信息 3. 快速获取SQL关联幕后信息 ...

  4. 【西北师大-2108Java】第十四次作业成绩汇总

    [西北师大-2108Java]第十四次作业成绩汇总 作业题目 面向对象程序设计(JAVA) 第16周学习指导及要求 实验目的与要求 (1)掌握Java应用程序的打包操作: (2)掌握线程概念: (3) ...

  5. Drawable.SetDither(Boolean) Method

    https://docs.microsoft.com/zh-cn/dotnet/api/android.graphics.drawables.drawable.setdither?view=xamar ...

  6. ReactNative: 使用标签栏组件TabBarIOS组件

    一.简介 标签栏Tab的作用对于应用程序那是不言而喻的,它是应用程序中除了导航栏组件外的又一个核心组件,使用它可以实现页面的切换.RN提供了一个TabBarIOS组件来完成页面的切换(视图或者路由), ...

  7. Java大数类 BigInteger

    package bigint; /** * This class encapsulates a BigInteger, i.e. a positive or negative integer * wi ...

  8. 【algo&ds】【pat】5.并查集及其应用

    1.并查集的定义 在计算机科学中,并查集是一种树型的数据结构,用于处理一些不交集(Disjoint Sets)的合并及查询问题.有一个联合-查找算法(union-find algorithm)定义了两 ...

  9. C#发送邮件(内容中有图片)

    用微软的System.Net.Mail发送邮件,有些时候发邮件需要邮件内容中添加图片. 对象解释 SmtpClient类:允许应用程序使用简单邮件传输协议 (SMTP) 发送电子邮件.MailAddr ...

  10. C# 模拟Windows键盘事件

    发送键盘消息 [DllImport("user32.dll", EntryPoint = "keybd_event", SetLastError = true) ...