• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Hỏi cách change backcolor 1 row trong datagridview khi dữ liệu trùng lặp

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Moderators: tungblt, vuathongtin

tartaros.2019
Thành viên chính thức
Thành viên chính thức
Posts: 12
Joined: Sat 30/11/2019 5:19 pm
Has thanked: 4 times

Hỏi cách change backcolor 1 row trong datagridview khi dữ liệu trùng lặp

Postby tartaros.2019 » Fri 27/12/2019 12:49 pm

Chả là em có 1 datagridview hiển thị dữ liệu từ SQL SERVER DB. Khi nhập dữ liệu vào các textbox có sẵn và ấn Lưu thì dữ liệu lưu vào Database bằng querry insert. Em không muốn check trùng lặp trước khi insert, mà check và cảnh báo trên datagridview nhưng chưa làm được, mong được các bác chỉ dạy với ạ.

Tức là sau khi đã insert dữ liệu mới vào db, reload lại datagridview để hiển thị dữ liệu mới rồi. Bây giờ bắt đầu check xem trong datagridview có dữ liệu trùng lặp không, những dòng nào trùng lặp thì thay đổi backcolor = red.

Mong các bác chỉ giáo cho em làm cách nào để check được như vậy với ạ. Em cảm ơn ạ.



ncxn
Thành viên năng nổ
Thành viên năng nổ
Posts: 62
Joined: Thu 27/01/2011 9:37 am
Has thanked: 1 time
Been thanked: 8 times

Re: Hỏi cách change backcolor 1 row trong datagridview khi dữ liệu trùng lặp

Postby ncxn » Fri 27/12/2019 1:51 pm

Tưởng tượng mà check từng dòng , từng cột so với tập hợp còn lại thấy vãi chưởng rồi, nên tốt nhất bỏ ý tưởng này cho rồi.

Ví dụ muốn check trùng dữ liệu của row 1 thì phải chạy vòng lặp 1 vs (n-1) row còn lại, đấy là chỉ column chứ m column thì còn vãi chưởng nữa, keke.

-----------

Đấy là cách cơ bản nhất mà có thể thực hiện được.

Còn vài thuật toán khác, tuy độ phức tạp có giảm nhưng cũng không hiệu quả gì lắm cho ý tưởng này.
Last edited by ncxn on Fri 27/12/2019 2:39 pm, edited 1 time in total.

muaphonui_2010
Thành viên ưu tú
Thành viên ưu tú
Posts: 536
Joined: Fri 26/11/2010 1:15 pm
Location: TP.HCM
Has thanked: 187 times
Been thanked: 33 times
Contact:

Re: Hỏi cách change backcolor 1 row trong datagridview khi dữ liệu trùng lặp

Postby muaphonui_2010 » Fri 27/12/2019 2:31 pm

"Tức là sau khi đã insert dữ liệu mới vào db, reload lại datagridview để hiển thị dữ liệu mới rồi. Bây giờ bắt đầu check xem trong datagridview có dữ liệu trùng lặp không, những dòng nào trùng lặp thì thay đổi backcolor = red."
==> Trùng là trùng so với tiêu chí cột nào chứ phải không bạn.
Theo như mình thì bạn có thể dùng hàm countif (đếm) số mã trùng ở câu SQL khi lấy lên, sau đó dùng điều kiện lớn hơn 1 thì tô đỏ
Hoặc lúc load dữ liệu lên datagridview thì bạn sắp xếp theo cột mà bạn cho là trùng. sau đó mình dùng vòng lặp For để so sánh dòng hiện tại và dòng kế tiếp có giống nhau hay không, nếu giống là trùng.

Đại loại như
For i AS interger = 0 to datagridview.row.count -1
Bạn lấy giá trị của dòng i so với giá trị của dòng i +1 để xem có giống nhau hay không, nếu giống là trùng
Next

Như vậy bạn chỉ cần For 1 lần thôi
do mình không có dùng datagridview nên mình ko có code cụ thể được.


Return to “Visual Basic .NET và C# (VB.NET & C#)”

Who is online

Users browsing this forum: No registered users and 4 guests