منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : لماذا يقوم امر الحفظ بتكرار البيانات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته
وكل عام وانتم بخير
مشكلتي باختصار هي ان كلما أقم باضافة سجلين واعمل حفظ يضاف السجل الآول مرتين ولا أدري السبب ..

... وكل عام وانتم بخير

كود :
Imports System.Data.OleDb

Public Class DataSetTest
    Dim Sqltr As String = " Select * From Tb"
    Dim ConString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=|DataDirectory|\db2.mdb;"
    Dim Da As New OleDbDataAdapter(Sqltr, ConString)
    Dim Ds As New DataSet
    Dim Cmdb As New OleDbCommandBuilder

    Sub DataLoad()
        Da.Fill(Ds, "Tb")
        NameText.DataBindings.Add("Text", Ds, "Tb.Name")
        PhonNoText.DataBindings.Add("Text", Ds, "Tb.PhoneNo")
    End Sub

    Private Sub DataSetTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        DataLoad()
    End Sub

    Private Sub Save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Save.Click
        Da.Update(Ds, "Tb")
    End Sub

    Private Sub NewRecord_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewRecord.Click
        Me.BindingContext(Ds, "Tb").AddNew()
    End Sub

    Private Sub Add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Add.Click

        Dim R As DataRow = Ds.Tables("Tb").NewRow

        R(0) = NameText.Text
        R(1) = PhonNoText.Text
        Ds.Tables("Tb").Rows.Add(R)
        Cmdb = New OleDbCommandBuilder(Da)
    End Sub
End Class
[/php]
السلام عليكم ورحمة الله وبركاته

لأنك أضفت AddNew في زري أمر مختلفين وهما :

كود :
Private Sub NewRecord_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewRecord.Click
   Me.BindingContext(Ds, "Tb").AddNew()
    End Sub

و

كود :
Private Sub Add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Add.Click

     Dim R As DataRow = Ds.Tables("Tb").NewRow

        R(0) = NameText.Text
        R(1) = PhonNoText.Text
        Ds.Tables("Tb").Rows.Add(R)
        Cmdb = New OleDbCommandBuilder(Da)
    End Sub

يفضل حذف الأول

****
***
**
*
شكرا اخي الفاضل لقد قمت فعلا بتجربة وفعلا انك كنت علي صواب وشكرا ....
لكن كيف لي ان أعمل كود لاظهار سجل جديد يكون المستخدم باضافة البيانات من خلاله بدلا من الكود الأول ثم يستعمل الكود الثاني لاضافة البيانات ل داتا ست ومن ثم لقاعدة البيانات ...
السلام عليكم ورحمة الله وبركاته

سأعطيك مثالاً سهلا وبسيطا عن كيفية إضافة وتعديل وحذف البيانات، وأعتقد أنك ستفهم فيه العمليات كلها إن شاء الله.


انظر للمرفقات