分享

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

 Cloud书屋 2012-11-22

  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./ </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.   
  31.         /// <summary>  
  32.         /// 反一个M行N列的二维数组转换为DataTable  
  33.         /// </summary>  
  34.         /// <param name="ColumnNames">一维数组,代表列名,不能有重复值</param>  
  35.         /// <param name="Arrays">M行N列的二维数组</param>  
  36.         /// <returns>返回DataTable</returns>  
  37.         /// <remarks>柳永法 http://www./ </remarks>  
  38.         public static DataTable Convert(string[] ColumnNames, string[,] Arrays)  
  39.         {  
  40.             DataTable dt = new DataTable();  
  41.   
  42.             foreach (string ColumnName in ColumnNames)  
  43.             {  
  44.                 dt.Columns.Add(ColumnName, typeof(string));  
  45.             }  
  46.   
  47.             for (int i1 = 0; i1 < Arrays.GetLength(0); i1++)  
  48.             {  
  49.                 DataRow dr = dt.NewRow();  
  50.                 for (int i = 0; i < ColumnNames.Length; i++)  
  51.                 {  
  52.                     dr[i] = Arrays[i1, i].ToString();  
  53.                 }  
  54.                 dt.Rows.Add(dr);  
  55.             }  
  56.   
  57.             return dt;  
  58.   
  59.         }  
  60.   
  61.   
  62.         /// <summary>  
  63.         /// 反一个M行N列的二维数组转换为DataTable  
  64.         /// </summary>  
  65.         /// <param name="Arrays">M行N列的二维数组</param>  
  66.         /// <returns>返回DataTable</returns>  
  67.         /// <remarks>柳永法 http://www./ </remarks>  
  68.         public static DataTable Convert(string[,] Arrays)  
  69.         {  
  70.             DataTable dt = new DataTable();  
  71.   
  72.             int a = Arrays.GetLength(0);  
  73.             for (int i = 0; i < Arrays.GetLength(1); i++)  
  74.             {  
  75.                 dt.Columns.Add("col" + i.ToString(), typeof(string));  
  76.             }  
  77.   
  78.             for (int i1 = 0; i1 < Arrays.GetLength(0); i1++)  
  79.             {  
  80.                 DataRow dr = dt.NewRow();  
  81.                 for (int i = 0; i < Arrays.GetLength(1); i++)  
  82.                 {  
  83.                     dr[i] = Arrays[i1, i].ToString();  
  84.                 }  
  85.                 dt.Rows.Add(dr);  
  86.             }  
  87.   
  88.             return dt;  
  89.   
  90.         }  
  91.   
  92.     }  
  93. }  

示例代码:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Text;  
  7. using System.Windows.Forms;  
  8.   
  9. namespace ArrayToDataTable  
  10. {  
  11.     public partial class Form1 : Form  
  12.     {  
  13.         public Form1()  
  14.         {  
  15.             InitializeComponent();  
  16.         }  
  17.   
  18.         private void button1_Click(object sender, EventArgs e)  
  19.         {  
  20.             dataGridView1.DataSource = ArrayToDataTable.Convert("haha"new string[] { "1""2""3""4""5""6" });  
  21.         }  
  22.   
  23.         private void button2_Click(object sender, EventArgs e)  
  24.         {  
  25.             string[,] array3D = {   
  26.                                 { "1""数组转DataTable 1""0"},   
  27.                                 { "2""数组转DataTable 2""1"},   
  28.                                 { "3""数组转DataTable 3""1"},   
  29.                                 { "4""数组转DataTable 4""2"},   
  30.                                 { "5""数组转DataTable 5""2"},   
  31.                                 { "6""数组转DataTable 6""5"},   
  32.                                 };  
  33.             dataGridView1.DataSource = ArrayToDataTable.Convert(new string[] { "haha1""haha2""haha3" }, array3D);  
  34.   
  35.         }  
  36.   
  37.         private void button3_Click(object sender, EventArgs e)  
  38.         {  
  39.             string[,] array3D = {   
  40.                                 { "1""数组转DataTable 1""0"},   
  41.                                 { "2""数组转DataTable 2""1"},   
  42.                                 { "3""数组转DataTable 3""1"},   
  43.                                 { "4""数组转DataTable 4""2"},   
  44.                                 { "5""数组转DataTable 5""2"},   
  45.                                 { "6""数组转DataTable 6""5"},   
  46.                                 };  
  47.             dataGridView1.DataSource = ArrayToDataTable.Convert(array3D);  
  48.   
  49.         }  
  50.   
  51.         private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)  
  52.         {  
  53.             System.Diagnostics.Process.Start("Iexplore.exe""http://www./");  
  54.         }  
  55.     }  
  56. }  

演示及ArrayToDataTable类下载地址:ArrayToDataTable.rar 
 

原创作者:柳永法(yongfa365)'Blog

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约