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

ارجو معرفه ما الخظأ فى الكود البرمجى لزر اضافه وحفظ

بدأه احمد عبد الحكيم في 17 أكتوبر 2014 · 0 رد · 304 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1

بسم الله الرحمن الرحيم

السلام عليكم

انا صممت كود اضافه وحفظ وتعديل

لكن عند التشغيل والظغط على كود الاضافه لا يعمل

ويعطينى رساله خطأ عند هذا الكود

current = Me.BindingContext(DataSet1, "cus").Position + 1

هذا كود النموذج

Public Class cus

    Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\me.accdb;")
    Dim DataSet1 As New DataSet
    Dim DataAdapter1 As New OleDbDataAdapter("SELECT * From cus", conn)
    Private _bindingContex1 As Object

    Private Property BindingContex As Integer

    Private Property BindingContex(ByVal DataSet1 As DataSet, ByVal p2 As String) As Object
        Get
            Return _bindingContex1
        End Get
        Set(ByVal value As Object)
            _bindingContex1 = value
        End Set
    End Property


    Private Sub cus_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        DataAdapter1.Fill(DataSet1, "Cus")
        'اعدادات مربعات النص
        Label1.DataBindings.Add("Text", DataSet1, "cus.cusID")
        txtname.DataBindings.Add("Text", DataSet1, "cus.cusName")
        txtaddr.DataBindings.Add("Text", DataSet1, "cus.cusAddress")
        txtphone.DataBindings.Add("Text", DataSet1, "cus.cusPhone")


        ' كود الداتا جريد
        DataGridView1.DataSource = DataSet1
        DataGridView1.DataMember = "cus"

        DataGridView1.EnableHeadersVisualStyles = False
        DataGridView1.Columns(0).HeaderText = "الرقم"
        DataGridView1.Columns(1).HeaderText = "الاسم"
        DataGridView1.Columns(2).HeaderText = "العنوان"
        DataGridView1.Columns(3).HeaderText = "الهاتف"

        Me.DataGridView1.Columns(0).SortMode = DataGridViewColumnSortMode.NotSortable
        Me.DataGridView1.Columns(1).SortMode = DataGridViewColumnSortMode.NotSortable
        Me.DataGridView1.Columns(2).SortMode = DataGridViewColumnSortMode.NotSortable
        Me.DataGridView1.Columns(3).SortMode = DataGridViewColumnSortMode.NotSortable
        DataGridView1.Columns(1).ReadOnly = True

        'اظهار عدد السجلات فى الجدول

        On Error Resume Next
        Dim records, current As Integer
        records = Me.BindingContext(DataSet1, "cus").Count
        current = Me.BindingContext(DataSet1, "cus").Position + 1
        Label4.Text = " عدد السجلات  " & current.ToString & " من أصل " & records.ToString

    End Sub

    Private Sub butadd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butadd.Click

        If MsgBox("   هل إنت متـــأكد من عميلة تسجيل عميل جديد  " & " ؟ ", MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.OkCancel, "اضافة سجل جديد") = MsgBoxResult.Cancel Then Exit Sub
        DataSet1.Clear()
        butsave.Text = "حفظ"
        '  count()
        Dim records, current As Integer
        records = Me.BindingContext(DataSet1, "cus").Count
        current = Me.BindingContex(DataSet1, "cus").Position + 1
        Label4.Text = " عدد السجلات  " & current.ToString & " من أصل " & records.ToString
        On Error Resume Next
    End Sub

    Private Sub butsave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butsave.Click
        ' كود الحفظ والتعديل



        Try


            Application.DoEvents()


            If Label1.Text = "" Then

                'كود اضافة سجل جديد
                Dim Add_NewRow As DataRow = DataSet1.Tables("cus").NewRow()


                '   If TextBox1.Text = "" Then Add_NewRow("name") = DBNull.Value Else Add_NewRow("name") = TextBox1.Text.Trim

                If Label1.Text = "" Then Add_NewRow("cusID") = DBNull.Value Else Add_NewRow("cusID") = Label1.Text.Trim
                If txtname.Text = "" Then Add_NewRow("cusName") = DBNull.Value Else Add_NewRow("cusName") = txtname.Text.Trim
                If txtaddr.Text = "" Then Add_NewRow("cusAddress") = DBNull.Value Else Add_NewRow("cusAddress") = txtaddr.Text.Trim
                If txtphone.Text = "" Then Add_NewRow("cusPhone") = DBNull.Value Else Add_NewRow("cusPhone") = txtphone.Text.Trim

                DataSet1.Tables("cus").Rows.Add(Add_NewRow)

                'كود حفظ الاضافة
                Validate()
                DataAdapter1.Update(DataSet1.Tables("cus"))
                DataSet1.AcceptChanges()
                butsave.Text = " تعديل"

                'تحديث قاعدة البيانات
                conn.Open()
                DataSet1.Clear()
                DataAdapter1.Fill(DataSet1, "cus")
                conn.Close()


                'كود الانتقال الى اخر سجل تم اضافته بعد تخديث قاعدة البيانات
                Me.BindingContext(DataSet1, "cus").Position = Me.BindingContext(DataSet1, "cus").Count - 1

                '==================== متغير يكون بس ماقبل معي ========

                Dim records, current As Integer
                records = Me.BindingContext(DataSet1, "cus").Count
                current = Me.BindingContext(DataSet1, "cus").Position + 1
                Label4.Text = " عدد السجلات  " & current.ToString & " من أصل " & records.ToString

                
                
                '=======================================================================
                MsgBox("تـــم إضـــــافة العميل بنجاح ", 64, "نجاح")

            Else

                'كود معرفة رقم الصف الحالي في قاعدة البيانات  
                Dim Row_Num As Integer = Me.BindingContext(DataSet1, "cus").Position

                'كود حفظ التعديل
                DataSet1.Tables("cus").Rows(Row_Num).BeginEdit()


                If Label1.Text = "" Then DataSet1.Tables("cus").Rows(Row_Num).Item("cusID") = DBNull.Value Else DataSet1.Tables("cus").Rows(Row_Num).Item("cusID") = Label1.Text.Trim
                If txtname.Text = "" Then DataSet1.Tables("cus").Rows(Row_Num).Item("cusName") = DBNull.Value Else DataSet1.Tables("cus").Rows(Row_Num).Item("cusName") = txtname.Text.Trim
                If txtaddr.Text = "" Then DataSet1.Tables("cus").Rows(Row_Num).Item("cusAddress") = DBNull.Value Else DataSet1.Tables("cus").Rows(Row_Num).Item("cusAddress") = txtaddr.Text.Trim
                If txtphone.Text = "" Then DataSet1.Tables("cus").Rows(Row_Num).Item("cusPhone") = DBNull.Value Else DataSet1.Tables("cus").Rows(Row_Num).Item("cusPhone") = txtphone.Text.Trim
                ' If Tet_item_name.Text =""  Then DataSet1.Tables("item").Rows(Row_Num)Item("name")=DBNULL.VALUE ELSE DataSet1.Tables("item").rows(row_num).Item("name")=Tet_item_name.Text.Teim




                DataSet1.Tables("cus").Rows(Row_Num).EndEdit()


                'كود حفظ التعديل
                Validate()
                DataAdapter1.Update(DataSet1.Tables(0))
                DataSet1.AcceptChanges()


                '==================== متغير يكون بس ماقبل معي ========

                Dim records, current As Integer
                records = Me.BindingContext(DataSet1, "cus").Count
                current = Me.BindingContext(DataSet1, "cus").Position + 1
                Label4.Text = " عدد السجلات  " & current.ToString & " من أصل " & records.ToString

              

                '=======================================================================

                MsgBox("تم التعــــديل والحفظ بنــجاج", 64, "تعديل العمــــــــــــلاء")


            End If


        Catch ex As Exception




            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)


        End Try

    End Sub



End Class

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…