C# 数组转换为DataTable 的三个方法

 
  1. using System;
  2. using System.Data;
  3.  
  4. namespace ArrayToDataTable
  5. {
  6. class ArrayToDataTable
  7. {
  8. /// <summary>
  9. /// 把一个一维数组转换为DataTable
  10. /// </summary>
  11. /// <param name="ColumnName">列名</param>
  12. /// <param name="Array">一维数组</param>
  13. /// <returns>返回DataTable</returns>
  14. /// <remarks>柳永法 http://www.yongfa365.com/ </remarks>
  15. public static DataTable Convert(string ColumnName, string[] Array)
  16. {
  17. DataTable dt = new DataTable();
  18. dt.Columns.Add(ColumnName, typeof(string));
  19.  
  20. for (int i = 0; i < Array.Length; i++)
  21. {
  22. DataRow dr = dt.NewRow();
  23. dr[ColumnName] = Array[i].ToString();
  24. dt.Rows.Add(dr);
  25. }
  26.  
  27. return dt;
  28. }
  29.  
  30. /// <summary>
  31. /// 反一个M行N列的二维数组转换为DataTable
  32. /// </summary>
  33. /// <param name="ColumnNames">一维数组,代表列名,不能有重复值</param>
  34. /// <param name="Arrays">M行N列的二维数组</param>
  35. /// <returns>返回DataTable</returns>
  36. /// <remarks>柳永法 http://www.yongfa365.com/ </remarks>
  37. public static DataTable Convert(string[] ColumnNames, string[,] Arrays)
  38. {
  39. DataTable dt = new DataTable();
  40.  
  41. foreach (string ColumnName in ColumnNames)
  42. {
  43. dt.Columns.Add(ColumnName, typeof(string));
  44. }
  45.  
  46. for (int i1 = 0; i1 < Arrays.GetLength(0); i1++)
  47. {
  48. DataRow dr = dt.NewRow();
  49. for (int i = 0; i < ColumnNames.Length; i++)
  50. {
  51. dr[i] = Arrays[i1, i].ToString();
  52. }
  53. dt.Rows.Add(dr);
  54. }
  55.  
  56. return dt;
  57.  
  58. }
  59.  
  60. /// <summary>
  61. /// 反一个M行N列的二维数组转换为DataTable
  62. /// </summary>
  63. /// <param name="Arrays">M行N列的二维数组</param>
  64. /// <returns>返回DataTable</returns>
  65. /// <remarks>柳永法 http://www.yongfa365.com/ </remarks>
  66. public static DataTable Convert(string[,] Arrays)
  67. {
  68. DataTable dt = new DataTable();
  69.  
  70. int a = Arrays.GetLength(0);
  71. for (int i = 0; i < Arrays.GetLength(1); i++)
  72. {
  73. dt.Columns.Add("col" + i.ToString(), typeof(string));
  74. }
  75.  
  76. for (int i1 = 0; i1 < Arrays.GetLength(0); i1++)
  77. {
  78. DataRow dr = dt.NewRow();
  79. for (int i = 0; i < Arrays.GetLength(1); i++)
  80. {
  81. dr[i] = Arrays[i1, i].ToString();
  82. }
  83. dt.Rows.Add(dr);
  84. }
  85.  
  86. return dt;
  87.  
  88. }
  89.  
  90. }
  91. }
  92.  
  93. 示例代码:
  94. view plaincopy to clipboardprint?
  95.  
  96. using System;
  97. using System.Collections.Generic;
  98. using System.ComponentModel;
  99. using System.Data;
  100. using System.Drawing;
  101. using System.Text;
  102. using System.Windows.Forms;
  103.  
  104. namespace ArrayToDataTable
  105. {
  106. public partial class Form1 : Form
  107. {
  108. public Form1()
  109. {
  110. InitializeComponent();
  111. }
  112.  
  113. private void button1_Click(object sender, EventArgs e)
  114. {
  115. dataGridView1.DataSource = ArrayToDataTable.Convert("haha", new string[] { "1", "2", "3", "4", "5", "6" });
  116. }
  117.  
  118. private void button2_Click(object sender, EventArgs e)
  119. {
  120. string[,] array3D = {
  121. { "1", "数组转DataTable 1", "0"},
  122. { "2", "数组转DataTable 2", "1"},
  123. { "3", "数组转DataTable 3", "1"},
  124. { "4", "数组转DataTable 4", "2"},
  125. { "5", "数组转DataTable 5", "2"},
  126. { "6", "数组转DataTable 6", "5"},
  127. };
  128. dataGridView1.DataSource = ArrayToDataTable.Convert(new string[] { "haha1", "haha2", "haha3" }, array3D);
  129.  
  130. }
  131.  
  132. private void button3_Click(object sender, EventArgs e)
  133. {
  134. string[,] array3D = {
  135. { "1", "数组转DataTable 1", "0"},
  136. { "2", "数组转DataTable 2", "1"},
  137. { "3", "数组转DataTable 3", "1"},
  138. { "4", "数组转DataTable 4", "2"},
  139. { "5", "数组转DataTable 5", "2"},
  140. { "6", "数组转DataTable 6", "5"},
  141. };
  142. dataGridView1.DataSource = ArrayToDataTable.Convert(array3D);
  143.  
  144. }
  145.  
  146. private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
  147. {
  148. System.Diagnostics.Process.Start("Iexplore.exe", "http://www.yongfa365.com/");
  149. }
  150. }
  151. }

C# 数组转换为DataTable 的三个方法的更多相关文章

  1. php数组合并有哪三种方法

    php数组合并有哪三种方法 一.总结 一句话总结:array_merge():array_merge_recursive():‘+'号 $a = array('color'=>'red',5,6 ...

  2. js字符串转换为数字的三种方法。(转换函数)(强制类型转换)(利用js变量弱类型转换)

    js字符串转换为数字的三种方法.(转换函数)(强制类型转换)(利用js变量弱类型转换) 一.总结 js字符串转换为数字的三种方法(parseInt("1234blue"))(Num ...

  3. HDU 1556 线段树/树状数组/区间更新姿势 三种方法处理

    Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  4. Java中实现十进制数转换为二进制的三种方法

    第一种:除基倒取余法 这是最符合我们平时的数学逻辑思维的,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2...依次循环,直到商为0结束,把余数倒着依次排列,就构成了转换后的二进制数 ...

  5. JArray数组转换为DataTable

  6. 数组转DataTable

    using System; using System.Data; namespace ArrayToDataTable { class ArrayToDataTable { /// <summa ...

  7. 数组和datatable间的相互转换[C#]

    byte[] LogMsgByte = null; DataTable dtMessageInfo = new DataTable(); //将datatable转换为数组 dtMessageInfo ...

  8. 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)

    方法一:使用Arrays.asList()方法   1 2 String[] asset = {"equity", "stocks", "gold&q ...

  9. DataTable数据批量写入数据库三种方法比较

    DataTable数据批量写入数据库三种方法比较 标签: it 分类: C#1)   insert循环插入:2)   sqldataadapter.update(dataset,tablename); ...

随机推荐

  1. VR虚拟红包的技术实现

    2017年1月20日,腾讯发布消息称将推出Q-Glass,除了一般VR眼镜的标配功能外,Q-Glass还能实现眨眼抢红包.听起来是不是很酷炫?上市时间可要在10年后.不过,2016年底支付宝首推AR实 ...

  2. 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList

    package algorithms; import java.util.ArrayList; import java.util.Stack; /** * public class ListNode ...

  3. 日常开发需要掌握的Git命令

    本人待的两家公司,一直都是用的SVN,Git我只是自己私下学习和开发小项目的时候用过,工作一直没有使用过,但还是要学的... Git是最好的分布式版本控制系统 工作流程 SVN和Git的区别 SVN是 ...

  4. 微服务网关从零搭建——(二)搭建api网关(不带验证)

    环境准备 创建空的core2.1 api项目  演示使用名称APIGateWay  过程参考上一篇 完成后在appsettings.json 添加节点 "Setting": { & ...

  5. Docker 安装并定制 Nginx 服务器

    安装并定制 Nginx 1.查阅对应的官方文档,首先下载镜像文件: [spider@izwz9d74k4cznxtxjeeur9z local]$ sudo docker pull nginx [su ...

  6. buf.readInt32BE()

    buf.readInt32BE(offset[, noAssert]) buf.readInt32LE(offset[, noAssert]) offset {Number} 0 <= offs ...

  7. Jmeter使用基础笔记-写一个http请求

    前言 本篇文章主要讲述2个部分: 搭建一个简单的测试环境 用Jmeter发送一个简单的http请求 搭建测试环境 编写flask代码(我参考了开源项目HttpRunner的测试服务器),将如下的代码保 ...

  8. mac 中查看监听程序

    sudo lsof -nP -iTCP -sTCP:LISTEN | grep mysql

  9. LVS集群的三种工作模式

    LVS的三种工作模式: 1)VS/NAT模式(Network address translation) 2)VS/TUN模式(tunneling) 3)DR模式(Direct routing) 1.N ...

  10. open random

    open文件操作 f = open('文件路径',mode='rwab+',encoding='utf-8') # content = f.read(3) # 读出来的都是字符 # f.seek(3) ...