1. Control DataGridView
Là control được tổ chức dưới dạng bảng với các cột dọc (column) và hàng ngang (row), trên đầu mỗi cột có tên cột. DataGridView hữu ích trong trường hợp xuất dữ liệu có cấu trúc mảng 2 chiều, bảng dữ liệu, lưu trữ thống kê, database…
2. Xử lý cột (Column) trong DataGridView
Khi vừa khởi tạo từ ToolBox, DataGridView là bảng trống không có dòng và cột, trước tiên ta cần phải tạo cột, sau đó mới có thể thêm dữ liệu vào theo từng hàng. Đầu tiên ta sẽ tìm hiểu cách xử lý cột trong giao diện kéo thả của Visual Studio và sau đó là xử lý trên Code. Đầu tiên ta nhấm vào mũi tên nhỏ ở góc phải phía trên của control để xuất hiện bảng DataGridView Task, tại đây ta có thể thêm cột và thiết lập tùy chỉnh cho các cột đó. Thêm cột tại Add Column và chỉnh sửa cột tại Edit Column. Các checkbox bên dưới thiết lập cho phép (hoặc không) thêm, bớt, chỉnh sửa, xóa dữ liệu trên DataGridView trong quá trình chạy ứng dụng.
Nhìn vào bảng Edit Column bên dưới ta thấy trình quản lý các column, tại đây ta có thể thay đổi tên, text hiển thị đầu dòng và một số tùy chỉnh layout tại nhóm chức năng Layout

3. Xử lý cột trong Code.
Bên dưới là cách thêm cột cho DataGridView. Trong ví dụ ta cần thêm 3 cột nên lần lượt tạo 3 đối tượng DataGridViewTextBoxColumn và thứ tự thiết lập thuộc tính cho mỗi cột và cuối cùng thông qua phương thức AddRange để Add các cột vào DataGridView. Trong ví dụ trên ta thấy còn có 1 cột nhỏ bên trái DataGridView, để ẩn cột này ta thiết lập giá trị False cho thuộc tính RowHeaderVisible.

4. Thêm dữ liệu cho DataGridView
Thông qua phương thức Rows.Add() ta có thể dễ dàng thêm dữ liệu cho DataGridView. Ta thấy DataGridView có 3 cột nên đối số của phương thức Rows.Add() cần có 3 chuỗi, nếu ít hơn thì những vị trí sau sẽ bị chừa trống.

5. Truy xuất dữ liệu trong DataGridView
DataGridView tổ chức dữ liệu giống như 1 mảng 2 chiều thông thường, ta có thể thiết lập và truy xuất dữ liệu dễ dàng thông qua chỉ số hàng và cột. Bên dưới ta tiến hành lấy dữ liệu trong DataGridView thông qua các chỉ số hàng, cột đưa vào ở các TextBox. Lưu ý: dữ liệu trong các Cell (ô) lưu trữ dưới kiểu string. Việc gán dữ liệu vào bảng cũng tiến hành tương tự.

6. Event Cell Click
Với sự kiện này sẽ trả về cho chúng ta vị trí của cell đang được chọn, từ đó ta có thể dễ dàng lấy được dữ liệu trong cell. Ở đây ta có thêm vào phần xử lý dữ liệu với Clipboard. Khi có thao tác click vào 1 cell bất kỳ thì dữ liệu trong nó sẽ được copy vào bộ nhớ đệm, sau đó từ bộ nhớ đệm sẽ đổ dữ liệu vào label để hiển thị giá trị.


Cho mình hỏi làm sao để lấy dữ liệu của dòng đang chọn để load lên 1 form mới z?
Chào bạn!
Xem trong mục “6. Event Cell Click” bạn sẽ thấy thuộc tính e.rowIndex cho biết dòng dữ liệu đang được được chọn, từ đây có thể dễ dàng lấy hết dữ mới trên dòng đó.
Còn việc đưa dữ liệu lên Form khác, ở đây sẽ có 2 trường hợp:
Mình chỉ có thể đưa cách làm chứ không thực hiện Demo cụ thể giúp bạn được, có vấn đề gì bạn cứ liên hệ nhé!
Thân chào!
bạn ơi cho mình hỏi:
VD: mình có 1DataGridView với 3column: stt-Tên-ngày sinh và 1textBox Họ tên, 1DateTimePick ngày sinh, 1button Sửa
Làm sao để khi kích chuột vào đầu hàng(hàng đc bôi đen) và click vào nút sửa thì dữ liệu ở Tên-Ngày sinh trong datagridview được hiện tương ứng trên textBox Họ tên và DateTimePick vậy?
Chào bạn!
Vấn đề của bạn giải quyết như sau:
Chúc bạn làm tốt, chào bạn!
Mình có một Gridview hiển thị danh sách tài khoản gồm có: Tên đăng nhập và mật khẩu. Mình muốn tất cả dữ liệu trong Cột Mật Khẩu là chấm tròn hoặc sao (*)…miễn sao ko phải là text để người ta biết được thì mình phải làm sao?
Mình muốn hập liệu trên datagridview lun. rùi nhấn nút save để lưu xuống cơ sở dữ liệu sql, cho mình hỏi có được k, nếu được thì hướng dẫn giúp mình nhé. Mình cảm ơn!
Chào bạn!
Vấn đề bạn nêu trên có thể thực hiện rất bình thường. Chúng ta rất dễ dàng trong việc lấy dữ liệu từ datagridview, còn việc lưu xuống database thì tùy theo database bạn sử dụng sẽ có phương pháp thực hiện cụ thể.
Chúc bạn thành công!
Admin cho hỏi sao mình làm như trên mà không thấy hiển thị dữ liệu lên DataGridview trên form nhỉ?
Bạn có thể nói rõ hơn được ko?!
tức là không có các giá trị trong hàng cột mình tạo ra khi thử chạy ấy mà grid bị trống
:((
Có phải bạn đổ dữ liệu vào datagridview mà ko được phải ko?
Với datagridview bạn có thể dễ dàng thiết lập/ lấy giá trị của 1 cell bất kỳ thông qua chỉ số hàng và cột.
tức là sau bước Rows.Add() làm như ở trên nhưng khi chạy thử thì trong Gridview không có gì cả.bạn có thể gửi mình file mẫu được không?thank trước nhé!
mail mình là josenguyenvu@gmail.com
admin ơi mình mới học csharp,mình làm như bạn nhưng ở dòng 17 mục 3.Xử lý cột trong Code lại hiện thế này: “Cannot implicitly convert type ‘System.Windows.Forms.DataGridTextBoxColumn’ to’System.Windows.Forms.DataGridViewColumn’”
admin có thể hướng dẫn thêm cho mình được không ạ,cảm ơn nhiều!
thanks, very useful article.
Bài viết rất hay và hữu ích! Cảm ơn bạn!