能不能将 DataGrid.Items中的一行记录 添加到DataTable中 

解决方案 »

  1.   

    DataTable objDt = new DataTable();            
    objDt.Columns.Add("NAME",typeof(string));
    objDt.Columns.Add("AGE",typeof(string));
    objDt.Columns.Add("SEX",typeof(string));
    DataRow objDr = objDt.NewRow();
    objDr["NAME"] = dgList.Items[i].Cells[1].Text;
    objDr["AGE"] = dgList.Items[i].Cells[2].Text;
    objDr["SEX"] = dgList.Items[i].Cells[3].Text;
    objDt.Rows.Add(objDr);
      

  2.   

    可以,读出item,然后就往datatable里添加
      

  3.   

    DataTable objDt = new DataTable();             
    objDt.Columns.Add("NAME",typeof(string)); 
    objDt.Columns.Add("AGE",typeof(string)); 
    objDt.Columns.Add("SEX",typeof(string)); 
    DataRow objDr = objDt.NewRow(); 
    objDr["NAME"] = dgList.Items[i].Cells[1].Text; 
    objDr["AGE"] = dgList.Items[i].Cells[2].Text; 
    objDr["SEX"] = dgList.Items[i].Cells[3].Text; 
    objDt.Rows.Add(objDr);
      

  4.   

    能不能把DataGridItem转成DataRow什么的
      

  5.   

    一个个加谁都会,我是要看看有什么方便点的,DataGridItem也是一条记录集,能不能把她转成DataRow后一次向相同Datatable架构表中添加
      

  6.   

    可以将作为数据源的datatable存起来,
    然后添加的时候根据索引号直接取数据源的datarow,放到新table里边。
    不过耗内存
      

  7.   

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
          if (e.Row.RowType == DataControlRowType.DataRow)
         {
             if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
             {
                 DataTable objDt = new DataTable();             
                 objDt.Columns.Add("NAME",typeof(string)); 
                 objDt.Columns.Add("AGE",typeof(string)); 
                 objDt.Columns.Add("SEX",typeof(string)); 
                 DataRow objDr = objDt.NewRow(); 
                 objDr["NAME"] = e.Items.Cells[1].Text; 
                 objDr["AGE"] = e.Items.Cells[2].Text; 
                 objDr["SEX"] = e.Items.Cells[3].Text; 
                 objDt.Rows.Add(objDr);
             }
         }}
      

  8.   

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 

          if (e.Row.RowType == DataControlRowType.DataRow) 
         { 
             if (e.Row.RowState == DataControlRowState.Normal  ¦ ¦ e.Row.RowState == DataControlRowState.Alternate) 
             { 
                 DataTable objDt = new DataTable();              
                 objDt.Columns.Add("NAME",typeof(string));  
                 objDt.Columns.Add("AGE",typeof(string));  
                 objDt.Columns.Add("SEX",typeof(string));  
                 DataRow objDr = objDt.NewRow();  
                 objDr["NAME"] = e.Items.Cells[1].Text;  
                 objDr["AGE"] = e.Items.Cells[2].Text;  
                 objDr["SEX"] = e.Items.Cells[3].Text;  
                 objDt.Rows.Add(objDr); 
             } 
         } 
    这不是全都添加了吗?我只要选定行的
    }
      

  9.   

    可以将作为数据源的datatable存起来, 
    然后添加的时候根据索引号直接取数据源的datarow,放到新table里边。 
    不过耗内存ddt.Rows.Add(dt.Rows[dgMaterialMst.Items[row].DataSetIndex]);
    是这样吗?运行会报错,那错了?
      

  10.   

    写一个foreach或者for循环,利用[index]加入即可。
      

  11.   


    DataTable dtNew = new DataTable();
    DataRow drNew = dtNew.NewRow();
    for (int iItems = 0; iItems < gvSI.Rows[0].Cells.Count; iItems++)
    {
           dtNew.Columns.Add(iItems.ToString(), typeof(string));
           drNew[iItems.ToString()] = gvSI.Rows[0].Cells[iItems].Text;
    }
    dtNew.Rows.Add(drNew);
      

  12.   

    (DataRow)dgMaterialMst.Items[row].DataItem;
    这样转换能加到DataTable中去吗?
      

  13.   


    DataTable dtNew = new DataTable();
    DataRow drNew = dtNew.NewRow();
    for (int iItems = 0; iItems < gvSI.Rows[0].Cells.Count; iItems++)
    {
           dtNew.Columns.Add(iItems.ToString(), typeof(string));
           drNew[iItems.ToString()] = gvSI.Rows[0].Cells[iItems].Text;
    }
    dtNew.Rows.Add(drNew);
    我是用vs 2005测试的,2003我都没怎么用过。
    但原理应该一样的。
    我试了
    DataRow dr = (DataRow)gvSI.Rows[0];
    这样是不行的。你可以用(DataRow)dgMaterialMst.Items[row].DataItem; 试一下啊
    我觉得写的上面这个思路应该可以吧!
      

  14.   

    ddt.Rows.Add(dt.Rows[dgMaterialMst.Items[row].DataSetIndex]); ddt是你目标datatable
    dt是你数据源
    dgMaterialMst是你的datagrid.现在的问题就是你怎么取当前选择的行号。
    你是怎么选择的?如果row是你datagrid的当前选择的行号那么你就直接
    ddt.Rows.Add(dt.Rows[row]);