DataGridView (四)将一个字段绑定到多列逐行显示后取值还原数据格式

来源:互联网 发布:linux top 排序 编辑:程序博客网 时间:2024/05/16 14:45
一下内容为绑定到4个字段的代码,方法哈了点,直接重新构建了一个数据源然后绑定的,不知道有没有更好的方法= =#
比较乱,演示个思路而已,随笔备忘
  1.  DataSet ds = new DataSet();
                ds.ReadXml("d://a.xml");
                DataTable dt = ds.Tables[0];
                DataTable dtCur = new DataTable();
                DataColumn dc1 = new DataColumn("c1");
                DataColumn dc2 = new DataColumn("c2");
                DataColumn dc3 = new DataColumn("c3");
                DataColumn dc4 = new DataColumn("c4");
                DataColumn dca = new DataColumn("ca");
                DataColumn dcb = new DataColumn("cb");
                DataColumn dcc = new DataColumn("cc");
                DataColumn dcd = new DataColumn("cd");
                dtCur.Columns.Add(dc1);
                dtCur.Columns.Add(dca);
                dtCur.Columns.Add(dc2);
                dtCur.Columns.Add(dcb);
                dtCur.Columns.Add(dc3);
                dtCur.Columns.Add(dcc);
                dtCur.Columns.Add(dc4);
                dtCur.Columns.Add(dcd);
                DataRow drCur = dtCur.NewRow();
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    int x = i % 4;

  2.                 switch (x)
                    {
                        case 0:
                            drCur[0] = dt.Rows[i][0].ToString();
                            drCur[1] = dt.Rows[i][1].ToString();
                            break;
                        case 1:
                            drCur[2] = dt.Rows[i][0].ToString();
                            drCur[3] = dt.Rows[i][1].ToString();
                            break;
                        case 2:
                            drCur[4] = dt.Rows[i][0].ToString();
                            drCur[5] = dt.Rows[i][1].ToString();
                            break;
                        case 3:
                            drCur[6] = dt.Rows[i][0].ToString();
                            drCur[7] = dt.Rows[i][1].ToString();
                            dtCur.Rows.Add(drCur);
                            drCur = dtCur.NewRow();
                            break;
                    }
                    if (i == dt.Rows.Count - 1 && x != 3)
                    {
                        dtCur.Rows.Add(drCur);
                    }
  3.             }
               
             
              
                this.dataGridView1.DataSource = dtCur;

 

取值

 

  1.             DataTable dt = new DataTable();
  2.             DataColumn dc1 = new DataColumn("dc1");
  3.             DataColumn dc2 = new DataColumn("dc2");
  4.             dt.Columns.Add(dc1);
  5.             dt.Columns.Add(dc2);
  6.             DataRow ddr = dt.NewRow() ;
  7.             foreach (DataGridViewRow dr in dataGridView1.Rows)
  8.             {
  9.                 for (int i = 0; i < 8; i++)
  10.                 {
  11.                     int x = i % 2;
  12.                     switch (x)
  13.                     {
  14.                         case 0:
  15.                             ddr = dt.NewRow();   
  16.                             ddr[0] = dr.Cells[i].Value;
  17.                             break;
  18.                         case 1:
  19.                             ddr[1] = dr.Cells[i].Value;
  20.                             dt.Rows.Add(ddr);
  21.                             break;
  22.                     }
  23.                 }
  24.             }
  25.             this.dataGridView2.DataSource = dt;
原创粉丝点击