[C#] 将DataTable行列转换 →→→→→进入此内容的聊天室

来自 , 2020-12-23, 写在 C#, 查看 198 次.
URL http://www.code666.cn/view/acf66648
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Data.SqlClient;
  6. using System.Data;
  7. namespace columnChange
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Test;User ID=××××;Password=××××");
  14.             using (conn)
  15.             {
  16.                 conn.Open();
  17.                 SqlDataAdapter apt = new SqlDataAdapter("select top 10 * from news ", conn);
  18.                 DataTable tb = new DataTable();
  19.                 apt.Fill(tb);
  20.                 DataTable tt = Col2Row(tb, "articleId");
  21.  
  22.             }
  23.         }
  24.         /// <summary>
  25.         /// 将DataTable行列转换
  26.         /// </summary>
  27.         /// <param name="src">要转换的DataTable</param>
  28.         /// <param name="columnHead">要作为Column的哪列</param>
  29.         /// <returns></returns>
  30.         public static DataTable Col2Row(DataTable src, int columnHead)
  31.         {
  32.             DataTable result = new DataTable();
  33.             DataColumn myHead = src.Columns[columnHead];
  34.             result.Columns.Add(myHead.ColumnName);
  35.             for (int i = 0; i < src.Rows.Count; i++)
  36.             {
  37.                 result.Columns.Add(src.Rows[i][myHead].ToString());
  38.             }
  39.             //
  40.             foreach (DataColumn col in src.Columns)
  41.             {
  42.                 if (col == myHead)
  43.                     continue;
  44.                 object[] newRow = new object[src.Rows.Count + 1];
  45.                 newRow[0] = col.ColumnName;
  46.                 for (int i = 0; i < src.Rows.Count; i++)
  47.                 {
  48.                     newRow[i + 1] = src.Rows[i][col];
  49.                 }
  50.                 result.Rows.Add(newRow);
  51.             }
  52.             return result;
  53.         }
  54.  
  55.         public static DataTable Col2Row(DataTable src, string columnHead)
  56.         {
  57.             for (int i = 0; i < src.Columns.Count; i++)
  58.             {
  59.                 if (src.Columns[i].ColumnName.ToUpper () == columnHead.ToUpper())
  60.                     return Col2Row(src, i);
  61.             }
  62.             return new DataTable();
  63.         }
  64.     }
  65. }
  66.  
  67. //csharp/1135

回复 "将DataTable行列转换"

这儿你可以回复上面这条便签

captcha