using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace columnChange
{
class Program
{
static void Main(string[] args)
{
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Test;User ID=××××;Password=××××");
using (conn)
{
conn.Open();
SqlDataAdapter apt = new SqlDataAdapter("select top 10 * from news ", conn);
DataTable tb = new DataTable();
apt.Fill(tb);
DataTable tt = Col2Row(tb, "articleId");
}
}
///
/// 将DataTable行列转换
///
/// 要转换的DataTable
/// 要作为Column的哪列
///
public static DataTable Col2Row(DataTable src, int columnHead)
{
DataTable result = new DataTable();
DataColumn myHead = src.Columns[columnHead];
result.Columns.Add(myHead.ColumnName);
for (int i = 0; i < src.Rows.Count; i++)
{
result.Columns.Add(src.Rows[i][myHead].ToString());
}
//
foreach (DataColumn col in src.Columns)
{
if (col == myHead)
continue;
object[] newRow = new object[src.Rows.Count + 1];
newRow[0] = col.ColumnName;
for (int i = 0; i < src.Rows.Count; i++)
{
newRow[i + 1] = src.Rows[i][col];
}
result.Rows.Add(newRow);
}
return result;
}
public static DataTable Col2Row(DataTable src, string columnHead)
{
for (int i = 0; i < src.Columns.Count; i++)
{
if (src.Columns[i].ColumnName.ToUpper () == columnHead.ToUpper())
return Col2Row(src, i);
}
return new DataTable();
}
}
}
//csharp/1135