Khi bạn đặt DataSource
property để null
, bạn là chủ yếu loại bỏ tất cả dữ liệu từ DataGridView
(vì nó không biết những gì để ràng buộc vào nữa).
Bạn có hai tùy chọn tại đây. Đầu tiên là cập nhật nguồn dữ liệu cơ bản. Giả sử rằng đó là DataTable
. Trong trường hợp này, bạn muốn làm điều gì đó như:
DataTable dt = dataGridView1.Source as DataTable;
dt.Rows.Add(new object[] { ... });
Và sau đó DataGridView
sẽ nhận về những thay đổi (lưu ý rằng nếu bạn không gắn vào một cái gì đó mà không thực hiện INotifyCollectionChanged
interface, bạn sẽ phải để gọi số ResetBindings
method để mạng lưới làm mới).
Tùy chọn khác là để cho phép DataGridView
quản lý các hàng. Bạn có thể làm điều này bằng tay bằng cách thêm từng hạng mục sử dụng Add
method trên DataGridViewRowCollection
trả về bởi các Rows
property:
foreach (var item in source)
{
dataGridView1.Rows.Add("1", "2", "3", ...);
}
Tôi sẽ không nói là giải pháp thứ hai là tối ưu, nhưng nó sẽ làm việc. Cuối cùng, giả sử bạn đang ràng buộc với một DataTable
(hoặc một số hiện thực hóa dữ liệu từ một nguồn dữ liệu cơ bản), điều này không làm bất cứ điều gì về việc cập nhật nguồn dữ liệu cơ bản (đó sẽ là một câu hỏi riêng biệt).
Tnx, bạn có thể chỉ cho tôi cách thêm hàng vào DataSource của tôi không? Tôi có một DataGridView khác với dữ liệu tôi muốn thêm vào GridView đầu tiên của mình .. – Bodi
Nếu cửa hàng sao lưu của bạn là một bảng SQL, tôi tưởng tượng bạn chỉ cần làm một INSERT vào bảng đó. –
Nó không phải từ SQL .. nó là một số dữ liệu của tôi tạo ra để thêm vào bảng đầu tiên và in nó;) – Bodi