الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اذافة بيانات مع عدم التكرار

بدأه atefkhalf2004 في 4 أغسطس 2012 · 12 رد · 961 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
Dim DS As New DataSet
            DS.Clear()
            Dim DPX As New OleDbDataAdapter("Select * From CityTb", Cn)
            DPX.Fill(DS, "CityTb")
            Dim Bilder1 As New OleDbCommandBuilder(DPX)
            For Each row As DataRow In DS.Tables("CityTb").Rows
                For I As Integer = 0 To DataGridView1.RowCount - 2
                    If DataGridView1.Rows(I).Cells(0).Value = row.Item("City") Then
                        MsgBox("added")
                    Else
                        Dim DRw As DataRow = DS.Tables("CityTb").NewRow
                        With DRw
                            .Item(1) = DataGridView1.Rows(I).Cells(0).Value
                            .Item(2) = Val(IDLb1.Text)
                        End With
                        DS.Tables("CityTb").Rows.Add(DRw)
                        DPX.Update(DS, "CityTb")
                    End If
                Next
            Next

كيف يتم اضافة البيانات

وفي جاالة تشابه البيانات لا يتم اضافتها

شكرا

#2

يمكنك عمل group by من الاستعلام مثلا

Select * From CityTb where 
cityName not in ( (select  cityName from CityTb group by cityName having count(cityName)!=1 ))

بالتوفيق

#3

يمكن استخدام هذا الكود للتاكن من البيانات قبل اضافتها الي الداتا ست

DataSet1.Tables(0).Rows.Find("")
#4

mahmuod

الاستاذ الفاضل

يظهر هذا الامر خطا من نوع syntax error عند جملة سلكت الثانية

برجاء اعادة صياغة الكود للاستفادة منه

الاستاذ الفاضل

DataSet1.Tables(0).Rows.Find("")

كي فواين استخدم الجملة السابقة

#5

انظر هذا الكود

  Dim nCount As Int16 = DataSet1.Tables(0).Select("pnTowerTypeCode=" & TryCast(cmbpTowerType.SelectedItem, Item).Value).Count

        If nCount <> 0 Then
            MessageBox.Show("The Hieght Select Befor", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End If

        Dim dr As System.Data.DataRow = DataSet1.Tables(0).NewRow
        dr("pnTowerTypeCode") = TryCast(cmbpTowerType.SelectedItem, Item).Value
        dr("psTowerTypeName") = TryCast(cmbpTowerType.SelectedItem, Item).Text
        dr("ptnMissionListCount") = txtQty.Text
        DataSet1.Tables(0).Rows.Add(dr)
#6

الاستاذ الفاضل

لم استطع الاستفادة

برجاء تعديل الكود الذي ارسلته انا او اي كود مع استبدال الجقول

#7

ارفق المشروع

#8

السيد الفاضل

هذا هو الملف الاصلي لاحد الزملاء وانا اعدل فيه بهذف الوصول الي

عند الحفظ في القاعدة يحفظ مع عدم تكرار البيانات الموجودة سواء في القاعدة او الجريد

هناك اتجاهين

1-عند التحرير في الجريد لا يتمم تكرار اسم وبالتالي عند الحفظ يتم مع عدم التكرار ويتم مقارنة الاسماء مع اسماء الموجودة في القاعدة والاضافة للسجلات المختلفة فقط

2-يتم مقارنة كل سطر في الجريد بالاسطر في القاعدة ويتم الاضافة للمحتلف فقط ( حلقة تكرارية لكل سجل في الجريد مع سجلات القاعدة )

المهم انا فاهم الفكرة لكن

كيف التنفيذ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟ اتمني المساعدة

Example.rar

#9

الحل بسيط اجعل قاعدة البيانات لا تقبل تكرار الاسم واكتب رساله في Catch ex As Exception بان السجل مكرر مع التاكد من رقم خطء التكرار قبل عرض الرسالة

#10

الاستاذ الفاضل

انا احب اتعلم للمستقبل

كيف اعدل الكود في مشاركة 1 مني

لان ليس الهدف هو التغلب علي المشكلة بقدر الاستفادة منها في المرات السابقة

بصراحة

نفسي اعرف ازاي اعمل لوب تكرار وفي حالة التكرار يتم ارسال رسالة ولا يضيف الاسم

اتمني تعديل الكود او تعديل اي كود يفي بالغرض

شكرا

#11

هذا هو الكود بعد التعديل

Dim DS As New DataSet
            DS.Clear()
            Dim DPX As New OleDbDataAdapter("Select * From CityTb", Cn)

            DPX.Fill(DS, "CityTb")

            Dim Bilder1 As New OleDbCommandBuilder(DPX)

            For I As Integer = 0 To DataGridView1.RowCount - 2

                Dim nCount As Int16 = DS.Tables("CityTb").Select("City='" & DataGridView1.Rows(I).Cells(0).Value & "'").Count

                If nCount <> 0 Then
                    MessageBox.Show("The Value Select Befor", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
                    Exit Sub
                End If

                Dim DRw As DataRow = DS.Tables("CityTb").NewRow

                With DRw

                    .Item(1) = DataGridView1.Rows(I).Cells(0).Value
                    .Item(2) = Val(IDLb1.Text)

                End With
                DS.Tables("CityTb").Rows.Add(DRw)
                DPX.Update(DS, "CityTb")

            Next

            '------------------------------------------------------------------
            MessageBox.Show("Saved >>>", "Okey", MessageBoxButtons.OK, MessageBoxIcon.Information)
#12

شكرا علي المجهود الوقير

اسنفدن كثيرا من الكود

#13

لا شكر علي واجب

مواضيع مشابهة