/// <summary>
  ///  주어진 DataSet 의 첫번째 DataTable의 첫번째 열의 데이터들을 컬럼이름으로

  ///  Inversed DataSet 을 반환환다.
  /// </summary>
  /// <param name="ds">변환하고자 하는 DataSet</param>
  /// <returns>행과 열이 뒤집어진 DataSet</returns>


 public static DataSet GetInversedDataSet(DataSet ds)
{
    DataSet dsReturn = new DataSet();
    DataTable dt = dsReturn.Tables.Add();           
    DataRow dr;
    DataColumn dc;

    for( int i = 0; i < ds.Tables[0].Rows.Count; i++)
        dc = dt.Columns.Add(i.ToString()); // 컬럼 이름 고유로   

    for( int j = 0; j < ds.Tables[0].Columns.Count; j++)
    {
        dr = dt.NewRow();

        for ( int k = 0; k < ds.Tables[0].Rows.Count; k++ )
            dr[k] = ds.Tables[0].Rows[k][j];

        dt.Rows.Add(dr);
    }
    dsReturn.AcceptChanges();
    return dsReturn;  
}

 

종종 데이터를 보여주려고 할 때, DB 에는 데이터저장의 효율성을 위해서 수직으로 넣어놓은

데이터를 사람이 볼 때는 수평으로 봐야할 때가 있다..

 

이걸 쿼리에서 처리할 수도 있지만, 양이 많지 않다면(?)^^

위의 메소드를 이용하면 더 쉽지 않을까 싶다..

+ Recent posts