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

مشكلة فى حفظ السجلات

مغلق
بدأه كفاح في 4 نوفمبر 2004 · 6 رد · 1,756 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

هذة اول تجربة لى مع قواعد البيانات ارجوا الاستفادة

قمت بعمل قاعدة البيانات هذة ولكن هناك مشكلة فى الحفظ بعد ان احاول اضافة سجل جديد

فما هو الخطأ ارجوا المساعدة مع خالص شكرى لكما

WindowsApplication33.zip

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#2

للأسف لم أفتح برنامجك المرفق لكون الفيجوال بيسك لا يوجد عندي على الجهاز الذي أستخدمه حالياً، ولكنني أستطيع أن أخمن مشكلتك:

أفترض هنا بأن الأدابتر عندك إسمه SqlDataAdapter1

وأفترض بأن الداتاسيت إسمها DataSet11

وأفترض بأن الجدول الذي تعمل عليه إسمه " Customers"

قم بوضع الكود التالي في زر الحفظ:

Me.BindingContext(DataSet11,"Customers").EndCurrentEdit() 
SqlDataAdapter1.Update(DataSet11)
DataSet11.AcceptChanges()

أما إذا أردت تخفيف الضغط على السيرفر فإستخدم الكود التالي (نتيجة هذا الكود هي نفس نتيجة الكود الأول):

Dim HMS As DataSet1
  Me.BindingContext(DataSet11,"Customers").EndCurrentEdit() 
 If DataSet11.HasChanges Then 
    dsTemp = CType(DataSet11.GetChanges, DataSet1) 
    SqlDataAdapter1.Update(HMS) 
    DataSet11.AcceptChanges() 
  End If

Learn Japanese :>>> http://www.nouben.com/

#3

اخى HMS اشكرك على الاهتمام ولكن نفس المشكلة موجودة لا استطيع حفظ سجل جديد ولكن استطيع الحذف ولك الاكواد ربما تسطيع مساعدتى

زر الاتصال

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        DataSet11.Clear()
        SqlDataAdapter1.Fill(DataSet11)
    End Sub

زر السجل التالى

   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.BindingContext(DataSet11, "region").CancelCurrentEdit()
        Me.BindingContext(DataSet11, "region").Position += 1
    End Sub

زر السجل السابق

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Me.BindingContext(DataSet11, "region").CancelCurrentEdit()
        Me.BindingContext(DataSet11, "region").Position -= 1
    End Sub

زر السجل الاول

 Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Me.BindingContext(DataSet11, "region").CancelCurrentEdit()

        Me.BindingContext(DataSet11, "region").Position = 0
    End Sub

زر السجل الاخير

  Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Me.BindingContext(DataSet11, "region").CancelCurrentEdit()
        Me.BindingContext(DataSet11, "region").Position = BindingContext(DataSet11, "region").Count - 1

    End Sub

زر حفظ سجل

 Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        Me.SqlDataAdapter1.Update(DataSet11)
        DataSet11.AcceptChanges()
End Sub

زر سجل جديد

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
        Me.BindingContext(DataSet11, "region").AddNew()
    End Sub

زر حذف سجل

    Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
        Me.BindingContext(DataSet11, "region").RemoveAt(Me.BindingContext(DataSet11, "region").Position)
        Me.BindingContext(DataSet11, "region").Position += 1
       
    End Sub

ارجوا المساعدة

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#4

هاهو البرنامج كاملاً، وقد قمت بفحصه بعد أنشأت جدول region وهو شغال مائة بالمائة، أعتقد بأنك قمت بإعداد برنامجك بطريقة خاطئة، وموقع الخطأ في عملية Data Binding لصندوقي TextBox، قم فقط بعملية ربط ال Text في خاصية DataBindings لكل من الصندوقين (لا تقم بربط tag على الإطلاق كما فعلت في برنامجك).

ستلاحظ (بعد أن تنسخ الكود الذي عملته أنا) بأنه يظهر لك رسالة تقول:

Column "ID" doesn’t allow nulls

والسبب في ذلك كما أسلفت هو ربط لخاصية ال Tag.

أنصحك عندما تنشيء كود أن تقوم بذلك مضمناً إياه Try , Catch فبهذه الطريقة تستطيع معرفة مكمن الخطأ في كود ما.

وأمر آخر، إن فتحت الجدول regions من نافذة ال server explorer فإنك لن تلاحظ أي update تقوم به، يجب عليك أن تغلق الجدول ومن ثم فتحه من جديد لترى أي إضافة قمت بها.

أرجو تنفيذ الكود وإن لم يعمل معك لسبب لا أعلمه أن تزودني برسالة الخطأ التي تظهر، فقد يكون الخطأ في إعداد ال Primary Key للجدول (في هذه الحالة قد تضطر لتزويدي بالجدول region لفحصه).

أرجو إن مشت الأمور معك أن تخبرني لأطمئن علين وعلى أهل مصر الحبيبة (ما تسألنيش كيف عرفت).

على فكره، لا تنسى أن تقوم بعملية ADD وال Update بعد أن تضغط على زر Upload، مش هيك؟ لذا أنصحك بأن تضع كود زر ال Upload في Form1_Load حتى لا تقع بهذا الخطأ.

الكود كالتالي، ومرفق أيضاً البرنامج:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            DataSet11.Clear()
            SqlDataAdapter1.Fill(DataSet11)
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
        
    End Sub



    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.BindingContext(DataSet11, "region").Position += 1
    End Sub



    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Me.BindingContext(DataSet11, "region").Position -= 1
    End Sub



    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Me.BindingContext(DataSet11, "region").Position = BindingContext(DataSet11, "region").Count - 1
    End Sub



    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Me.BindingContext(DataSet11, "region").Position = 0
    End Sub



    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
        Try
            Me.BindingContext(DataSet11, "region").EndCurrentEdit()
            Me.BindingContext(DataSet11, "region").AddNew()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

    End Sub



    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click

        Try
            Me.BindingContext(DataSet11, "region").EndCurrentEdit()
            Me.SqlConnection1.Open()
            Me.SqlDataAdapter1.Update(DataSet11)
            DataSet11.AcceptChanges()
        Catch ex As Exception

            MessageBox.Show(ex.Message)
        Finally
            Me.SqlConnection1.Close()
        End Try

    End Sub



    Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
        Try
            If (Me.BindingContext(DataSet11, "Region").Count > 0) Then
                Me.BindingContext(DataSet11, "Region").RemoveAt(Me.BindingContext(DataSet11, "Region").Position)
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub



    Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
        End
    End Sub

WindowsApplication33.rar

Learn Japanese :>>> http://www.nouben.com/

#5

]تسلم ايدك شغال 100%

اشكرك جدا ياخى واسف على ازعاجك هذة اول تجربة لى فى برمجة ADO

وشكرا جدا ايوة فعلا انا مصرى وارجوا انا اعرف الايميل الخاص بك للتواصل عبر الايميل

وشكرا مرة اخرى

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#6

حياك الله يا أخي وأنا بالخدمة دائماً، ها هو إيميلي:

haroon68@yahoo.com

Learn Japanese :>>> http://www.nouben.com/

#7

السلام

اخوي HMS

انا عندي نفس البرنامج تقريبا بس الخذف يحذف من الفورم فقط امام جدول الاكسس مايحذف فيه شي ابدا

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

وشكرا

هذا الموضوع مغلق.

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