Tôi muốn lấy một DataTable từ DataGridView của các giá trị Grid.Làm thế nào để tạo một DataTable từ DataGridView mà không có bất kỳ Datasource nào?
Nói cách khác DataTable giống như DataGridView Values
Tôi muốn lấy một DataTable từ DataGridView của các giá trị Grid.Làm thế nào để tạo một DataTable từ DataGridView mà không có bất kỳ Datasource nào?
Nói cách khác DataTable giống như DataGridView Values
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);
}
Bạn có thể cast đối tượng DataSource từ DataGridView vào một DataTable
DataTable dt = new DataTable();
dt = (DataTable)dataGridView1.DataSource;
Cần lưu ý rằng điều này sẽ không hoạt động nếu DataSource là một BindingList
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();
Bạn không thể chỉ instanti ăn một datatable mới và thiết lập nó như là nguồn dữ liệu của GridView? – Flynn1179