C# DataGridView行列转换的具体实现

  void InitTable()

  {

  var dataTable = new DataTable();

  dataTable.Columns.Add("姓名");

  dataTable.Columns.Add("年龄");

  dataTable.Columns.Add("地址");

  dataTable.Rows.Add("用户1", "1岁", "住址1");

  dataTable.Rows.Add("用户2", "2岁", "住址2");

  dataTable.Rows.Add("用户3", "3岁", "住址3");

  dataTable.Rows.Add("用户4", "4岁", "住址4");

  dataTable.Rows.Add("用户5", "5岁", "住址5");

  //转置table

  var dvgTable = DataTableRowConvertToColumn(dataTable);

  magicDataGridView1.DataSource = dvgTable;

  }

  DataTable DataTableRowConvertToColumn(DataTable dataTable)

  {

  var dvgTable = new DataTable();

  dvgTable.Columns.Add("列名");

  for (int i = 1; i <= dataTable.Rows.Count; i++)

  {

  dvgTable.Columns.Add(i.ToString());

  }

  for (int i = 0; i < dataTable.Columns.Count; i++)

  {

  object[] obj = new object[dataTable.Rows.Count + 1];

  obj[0] = dataTable.Columns[i].ColumnName;

  for (int j = 1; j <= dataTable.Rows.Count; j++)

  {

  obj[j] = dataTable.Rows[j - 1][i];

  }

  dvgTable.Rows.Add(obj);

  }

  return dvgTable;

  }