C#数据表分列显示
   表中一行数据
1
2
3
4想在datagridview中分行显示
即1 0 0
0 2 0
0 0 3
0 4 0能否实现啊,请高手支招,谢了!!!!!!

解决方案 »

  1.   

    你是固定的还是不固定的,你可以做一个临时表来装你的数据
    建一个表tb2有table1.columns.count 列for(int i = 0 ; i <tb1.cloumns.count;i++)
    { datarow dr = tb2.new row();
     dr[i] = tb1.rows[0][i];
    for(int j = 0 ;j<tb2.columns.count)
    {
    if(j != i)
    {
     dr[j] = tb1.rows[0][0];
    }
    }
    tb2.rows.add(dr);
    }这是思路,呵呵 !
      

  2.   

    不好意思,问题没有描述清楚数据表中两列
    表头:   aa    bb
            10    01
            20    02
            30    03我想在DATAGRIDVIEW中如下显示表头:   01    02    03
            10    0     0
            0     20    0
            0     0     30
    aa列中的元素按照bb列中的元素条件分列显示
    不知道这回是否描述清楚了,请高手支招,谢谢了!!!!!!
      

  3.   

    using System;
    using System.Data;namespace WebApplication2
    {
        public class Class1
        {
            public static DataTable CreateOriginalTable()
            {
                DataTable dtOriginalTable = new DataTable();            dtOriginalTable.Columns.Add("aa", typeof(string));
                dtOriginalTable.Columns.Add("bb", typeof(string));            DataRow dr = null;
                dr = dtOriginalTable.NewRow();
                dr["aa"] = "10";
                dr["bb"] = "01";
                dtOriginalTable.Rows.Add(dr);            dr = dtOriginalTable.NewRow();
                dr["aa"] = "20";
                dr["bb"] = "02";
                dtOriginalTable.Rows.Add(dr);            dr = dtOriginalTable.NewRow();
                dr["aa"] = "30";
                dr["bb"] = "03";
                dtOriginalTable.Rows.Add(dr);            return dtOriginalTable;
            }        public static DataTable CreateTemTable(string[] arrColumns, string[] arrRows)
            {
                if (arrColumns == null)
                    throw new Exception("ParamNullException");
                if (arrRows == null)
                    throw new Exception("ParamNullException");            DataTable dtTem = new DataTable();
                DataRow drTem = null;            for (int i = 0; i < arrColumns.Length; i++)
                {
                    dtTem.Columns.Add(arrColumns[i], typeof(string));
                }            for (int j = 0; j < arrColumns.Length; j++)
                {
                    drTem = dtTem.NewRow();
                    drTem[j] = arrRows[j];                for (int k = 0; k < arrColumns.Length; k++)
                    {
                        if (k != j)
                            drTem[k] = "0";
                    }                dtTem.Rows.Add(drTem);
                }            return dtTem;        }        public static DataTable GetData()
            {
                string[] arrColumns = null;
                string[] arrRows = null;            DataTable dt = null;
                dt = CreateOriginalTable();            arrColumns = new string[dt.Rows.Count];
                arrRows = new string[dt.Rows.Count];            for (int i = 0; i < dt.Rows.Count; i++)
                {
                    arrColumns[i] = dt.Rows[i]["bb"].ToString();
                    arrRows[i] = dt.Rows[i]["aa"].ToString();
                }            return CreateTemTable(arrColumns, arrRows);
            }
        }
    }
      

  4.   

    谢谢了,但是我不是要写死的,aa和bb只是举例,呵呵