2010-06-24 65 views

Trả lời

23

Có thể là một cách đẹp hơn để làm điều đó nhưng nếu không nó sẽ là khá tầm thường để chỉ lặp qua các DGV và tạo DataTable bằng tay.

Something như thế này có thể làm việc:

DataTable dt = new DataTable(); 
foreach(DataGridViewColumn col in dgv.Columns) 
{ 
    dt.Columns.Add(col.Name);  
} 

foreach(DataGridViewRow row in dgv.Rows) 
{ 
    DataRow dRow = dt.NewRow(); 
    foreach(DataGridViewCell cell in row.Cells) 
    { 
     dRow[cell.ColumnIndex] = cell.Value; 
    } 
    dt.Rows.Add(dRow); 
} 
7

Bạn có thể cast đối tượng DataSource từ DataGridView vào một DataTable

DataTable dt = new DataTable(); 
dt = (DataTable)dataGridView1.DataSource; 
+3

Cần lưu ý rằng điều này sẽ không hoạt động nếu DataSource là một BindingList , mặc dù tôi đã rất hy vọng. –

4

bạn có thể sử dụng đoạn mã sau cũng vậy, mã này lấp không ảnh hưởng trên DataGridView của bạn khi bạn thực hiện thêm hoặc xóa các hàng trong datatable

DataTable dt = new DataTable(); 
dt = Ctype(dataGridView1.DataSource,DataTable).copy(); 
Các vấn đề liên quan