منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] لماذا يقوم امر الحفظ بتكرار البيانات - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40)
+--- قسم : قسم أسئلة قواعد البيانات تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=41)
+--- الموضوع : [سؤال] لماذا يقوم امر الحفظ بتكرار البيانات (/showthread.php?tid=539)



لماذا يقوم امر الحفظ بتكرار البيانات - ahmedshafea - 14-10-13

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

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

كود :
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]


RE: لماذا يقوم امر الحفظ بتكرار البيانات - kslawy - 14-10-13

السلام عليكم ورحمة الله وبركاته

لأنك أضفت 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

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

****
***
**
*


RE: لماذا يقوم امر الحفظ بتكرار البيانات - ahmedshafea - 14-10-13

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


RE: لماذا يقوم امر الحفظ بتكرار البيانات - أبوبكر سويدان - 22-10-13

السلام عليكم ورحمة الله وبركاته

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


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