2012-10-18 58 views
0

如何將當前Datagrid數據轉換爲DataTable?我已經篩選了datagrid,現在我只想將過濾的數據轉換爲數據表。 Datagrid.ItemSource或DatagridView在這裏沒有幫助。將Datagrid數據轉換爲DataTable

+0

什麼是數據的出處嗎?即什麼是DataGrid綁定? – dash

+0

什麼返回'datagrid1.ItemsSource.GetType()。Name;'? –

+0

你正在使用ASP.net或Winform應用程序? –

回答

2

您可以從DataGrid中把數據作爲datatble:

 DataTable dt = new DataTable(); 
     DataColumn[] dcs = new DataColumn[]{}; 

     foreach (DataGridViewColumn c in dgv.Columns) 
     { 
      DataColumn dc = new DataColumn(); 
      dc.ColumnName = c.Name; 
      dc.DataType = c.ValueType; 
      dt.Columns.Add(dc); 

     } 

     foreach (DataGridViewRow r in dgv.Rows) 
     { 
      DataRow drow = dt.NewRow(); 

      foreach (DataGridViewCell cell in r.Cells) 
      { 
       drow[cell.OwningColumn.Name] = cell.Value; 
      } 

      dt.Rows.Add(drow); 
     } 
+0

我只有datagrid。我沒有datagridview。 – Kishor

+0

我沒有這裏的dgv。想要將當前的數據網格項目轉換爲數據表格 – Kishor

1

堅持更新的數據會話,或它在XML寫,只要你想獲取數據。

一些這樣的事

private void BindGrid() 
    { 
     DataTable dt; 
     if (Session["GridData"] == null) 
     { 
      dt = GetData();//From database or and other source 
      Session["GridData"] = dt; 
     } 
     else 
     { 
      dt = (DataTable)Session["GridData"]; 
     } 

     GridView.datasource = dt; 
     GridView.Databind(); 
    } 

    private void UpdataData(object sender, EventArgs e) 
    { 
     DataTable dt; 
     if (Session["GridData"] != null) 
     { 
      dt = (DataTable)Session["GridData"]; 


     // Do whatever you want with dt (datatable); 
     Session["GridData"] = dt; 

     BindGrid(); 
     } 

    }