23-08-25, 06:06 PM
لتحميل البيانات في القائمة من غير العناصر اللي تم حذفها، استخدام الكود التالي:
For Each item As DataRow In dt.Rows
If Not CheckedListBox1.Items.Contains(item("اسم الحقل").ToString()) Then
CheckedListBox1.Items.Add(item("اسم الحقل").ToString())
End If
Next
ولكن هذا الكود سيعمل إذا كانت البيانات لم تتغير، أما إذا كانت البيانات تتغير وتريد حذف العناصر التي تم تحديدها في CheckedListBox1، استخدام الكود التالي
:
For i As Integer = CheckedListBox1.Items.Count - 1 To 0 Step -1
If CheckedListBox1.GetItemChecked(i) Then
CheckedListBox1.Items.RemoveAt(i)
End If
Next
هذا الكود سيحذف العناصر التي تم تحديدها في CheckedListBox1.
أما إذا كنت تريد تحميل البيانات من قاعدة البيانات مع استبعاد العناصر المحذوفة، فيمكنك استخدام استعلام SQL لاستبعاد تلك العناصر.
Dim query As String = "SELECT * FROM table_name WHERE column_name NOT IN ('" & String.Join("', '", CheckedListBox1.Items.Cast(Of String).ToArray()) & "')"
ثم قم بتنفيذ الاستعلام وقم بتعبئة CheckedListBox1 بالبيانات الجديدة.
Dim cmd As New SqlCommand(query, Con)
Dim da As New SqlDataAdapter(cmd)
Dim dt As New DataTable()
da.Fill(dt)
CheckedListBox1.DataSource = dt
CheckedListBox1.DisplayMember = "اسم الحقل"
بهذا الشكل، سيتم تحميل البيانات من قاعدة البيانات مع استبعاد العناصر المحذوفة.
For Each item As DataRow In dt.Rows
If Not CheckedListBox1.Items.Contains(item("اسم الحقل").ToString()) Then
CheckedListBox1.Items.Add(item("اسم الحقل").ToString())
End If
Next
ولكن هذا الكود سيعمل إذا كانت البيانات لم تتغير، أما إذا كانت البيانات تتغير وتريد حذف العناصر التي تم تحديدها في CheckedListBox1، استخدام الكود التالي
:
For i As Integer = CheckedListBox1.Items.Count - 1 To 0 Step -1
If CheckedListBox1.GetItemChecked(i) Then
CheckedListBox1.Items.RemoveAt(i)
End If
Next
هذا الكود سيحذف العناصر التي تم تحديدها في CheckedListBox1.
أما إذا كنت تريد تحميل البيانات من قاعدة البيانات مع استبعاد العناصر المحذوفة، فيمكنك استخدام استعلام SQL لاستبعاد تلك العناصر.
Dim query As String = "SELECT * FROM table_name WHERE column_name NOT IN ('" & String.Join("', '", CheckedListBox1.Items.Cast(Of String).ToArray()) & "')"
ثم قم بتنفيذ الاستعلام وقم بتعبئة CheckedListBox1 بالبيانات الجديدة.
Dim cmd As New SqlCommand(query, Con)
Dim da As New SqlDataAdapter(cmd)
Dim dt As New DataTable()
da.Fill(dt)
CheckedListBox1.DataSource = dt
CheckedListBox1.DisplayMember = "اسم الحقل"
بهذا الشكل، سيتم تحميل البيانات من قاعدة البيانات مع استبعاد العناصر المحذوفة.
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ

