تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال بخصوص تحديث بيانات DataGridView
#1
    السلام عليكم ورحمة الله وبركاته ...

اخواني الاعزاء لدي سؤال بخصوص الداتاجريد في الوضع المنفصل . 

قمت بعمل كائن COMMAND لتنفيذ اوامر الاضافة والحذف والتحديث والتعديل . وقمت باستخدام الخاصية ( FORM_LOAD ( SENDER , E) 
لتحديث التغييرات على الداتاجريد وقد نجح في أمر الاظافة فقط اما بقية الاوامر ايظا فقد نجح ايظاً ولكن يعطيني رسالة كالتالي : 
الرد
تم الشكر بواسطة: اسامه الهرماوي
#2
ممكن الكود المستخدم في هذه العملية..
لكي يتم اصلاحة..
الرد
تم الشكر بواسطة: عبد العزيز البسكري
#3
شكرا جزيلا اخي اسامة هذه الاكواد التي لاتقبل التحديث 

تم الاعلان عنها في موديول عام وتم استدعائها من خلال الازرار في الفورم طبعا انا عملت الاظافة والتحديث والحذف لجدولين كما ستلاحظ ونجحت معي فقط عملية الاظافة 

في البداية هذه اوامر الحذف :
كود :
   Public Sub DeleteRowFrom_custdy_movement(ByVal Txtcustdy_codeW As TextBox)

       Dim CmdDelete As New SqlCommand
       With CmdDelete
           .Connection = Con
           .CommandType = CommandType.Text
           .CommandText = "Delete  From custdy_movement   Where custdy_code = " & Val(Txtcustdy_codeW.Text) & ""
       End With
       Try
           If Con.State = 1 Then Con.Close()
           Con.Open()
           CmdDelete.ExecuteNonQuery()
           Con.Close()
           MsgBox("تم حذف السجل", MsgBoxStyle.Information, "حذف")
           CmdDelete = Nothing
       Catch ex As Exception
           Con.Close()
           MsgBox(Err.Description, MsgBoxStyle.Information)
       Finally
           If Con.State = ConnectionState.Open Then Con.Close()
       End Try
 End Sub

كود :
Public Sub DeleteRowFrom_category_movement(ByVal TxtIDW As TextBox)

كود :
        Dim CmdDelete As New SqlCommand

كود :
        With CmdDelete

كود :
            .Connection = Con

كود :
            .CommandType = CommandType.Text

كود :
            .CommandText = "Delete  From category_movement   Where ID = " & Val(TxtIDW.Text) & ""

كود :
        End With

كود :
        Try

كود :
            If Con.State = 1 Then Con.Close()

كود :
            Con.Open()

كود :
            CmdDelete.ExecuteNonQuery()

كود :
            Con.Close()

كود :
            MsgBox("تم حذف السجل", MsgBoxStyle.Information, "حذف")

كود :
            CmdDelete = Nothing

كود :
        Catch ex As Exception

كود :
            Con.Close()

كود :
            MsgBox(Err.Description, MsgBoxStyle.Information)

كود :
        Finally

كود :
            If Con.State = ConnectionState.Open Then Con.Close()

كود :
        End Try

كود :
    End Sub

هذا امر استدعاء الحذف

    Private Sub BarButtondelete_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtondelete.ItemClick
        If MessageBox.Show("هل أنت متأكد من مواصلة عملية الحذف؟", "تنبيه", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.No Then
            Exit Sub
        Else
            Try
                DeleteRowFrom_custdy_movement(Txtcustdy_code)
                DeleteRowFrom_category_movement(TxtID)


            Catch ex As Exception
                Exit Sub
            End Try

        End If
        Tools_ReadOnly(True)
        Tools_Enabled(False)

        BarButtonsave.Enabled = False
        BarButtonCancel.Enabled = False
        BarButtonNew.Enabled = True
        BarButtonupdate.Enabled = True
        BarButtondelete.Enabled = True
        BarButtonEdit.Enabled = True
        BarButtonSaveEdit.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
        Try
            Form2_Load(sender, e)

        Catch ex As Exception
            Exit Sub
        End Try
    End Sub

 
ونفس الحال بالنسبة للتعديل اخي اسامة . شكرا جزيلا

اسف اخ اسامة الكود الثاني اتى بهذا الشكل
الرد
تم الشكر بواسطة:
#4
السّلام عليكم و رحمة الله و بركاته
كان من الأفضل وضع المشكلة بذاتها بفورم بسيط للتأكّد أكثر و مع ذلك و إضافة لما قد ينظر به أخي الغالي " أسامة " ..
أخي الكريم " عبد الله " ..
لماذا أكثرت من عبارة Try .. فواحدة قد تكفي .. لم أجرّب .. فقط نظريا .. حاول هكذا لو سمحت
كود :
Private Sub BarButtondelete_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtondelete.ItemClick
       If MessageBox.Show("هل أنت متأكد من مواصلة عملية الحذف؟", "تنبيه", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.No Then
           Exit Sub
       Else
           Try
  DeleteRowFrom_custdy_movement(Txtcustdy_code)
               DeleteRowFrom_category_movement(TxtID)
Form2_Load(sender, e)
    Tools_ReadOnly(True)
       Tools_Enabled(False)
BarButtonsave.Enabled = False
       BarButtonCancel.Enabled = False
       BarButtonNew.Enabled = True
       BarButtonupdate.Enabled = True
       BarButtondelete.Enabled = True
       BarButtonEdit.Enabled = True
       BarButtonSaveEdit.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
         MsgBox("تم حذف السجل.", MsgBoxStyle.Information, "حذف")
Catch ex As Exception
          MsgBox(Err.Description, MsgBoxStyle.Information)
           Finally
           End Try
       End If
   End Sub

تحياتي
الرد
تم الشكر بواسطة: elgokr
#5
(06-01-19, 01:35 AM)عبد العزيز البسكري كتب :
السّلام عليكم و رحمة الله و بركاته
كان من الأفضل وضع المشكلة بذاتها بفورم بسيط للتأكّد أكثر و مع ذلك و إضافة لما قد ينظر به أخي الغالي " أسامة " ..
أخي الكريم " عبد الله " ..
لماذا أكثرت من عبارة Try .. فواحدة قد تكفي .. لم أجرّب .. فقط نظريا .. حاول هكذا لو سمحت
كود :
Private Sub BarButtondelete_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtondelete.ItemClick
       If MessageBox.Show("هل أنت متأكد من مواصلة عملية الحذف؟", "تنبيه", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.No Then
           Exit Sub
       Else
           Try
  DeleteRowFrom_custdy_movement(Txtcustdy_code)
               DeleteRowFrom_category_movement(TxtID)
Form2_Load(sender, e)
    Tools_ReadOnly(True)
       Tools_Enabled(False)
BarButtonsave.Enabled = False
       BarButtonCancel.Enabled = False
       BarButtonNew.Enabled = True
       BarButtonupdate.Enabled = True
       BarButtondelete.Enabled = True
       BarButtonEdit.Enabled = True
       BarButtonSaveEdit.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
         MsgBox("تم حذف السجل.", MsgBoxStyle.Information, "حذف")
Catch ex As Exception
          MsgBox(Err.Description, MsgBoxStyle.Information)
           Finally
           End Try
       End If
   End Sub

تحياتي
السلام عليكم 

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


الملفات المرفقة صورة/صور
   
الرد
تم الشكر بواسطة:
#6
يبدو انك تقوم بادخال قيمة نص
فى عمود من نوع رقم

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

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: larbihamri , عبد العزيز البسكري
#7
(06-01-19, 01:50 PM)elgokr كتب :
يبدو انك تقوم بادخال قيمة نص
فى عمود من نوع رقم

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

تحياتى لك
وتمنياتى لك التوفيق

العملية حذف . هل يتم من خلالها ادخال قيمة . جزاك الله خير
الرد
تم الشكر بواسطة:
#8
السلام عليكم و رحمة الله و بركاته
ضع مثالا بسيطا أخي الغالي ليتم النظر فيه لو سمحت ..
القيمة المشار اليها من أخي elgokr موجودة بالكود الموجود لديك .. TxtID و Txtcustdy
تحياتي
الرد
تم الشكر بواسطة:
#9
بعد مراجعة الكود فى ردك الاول بالاعلى

احببت ان اوضح تصحيح لكود مع شرح نقاط مهمة يجب الانتباه لها

فى البداية كود الاول الخاص بـ Sub يجب ان يكون بهذه الطريقة
كود :
   Public Sub DeleteRowFrom_custdy_movement(ByVal Txtcustdy_codeW As Integer)
       Dim CmdDelete As New SqlCommand
       With CmdDelete
           .Connection = Con
           .CommandType = CommandType.Text
           .CommandText = "Delete  From custdy_movement   Where custdy_code = " & Txtcustdy_codeW
       End With
       If Con.State = 1 Then Con.Close()
       Con.Open()
       CmdDelete.ExecuteNonQuery()
       Con.Close()
       MsgBox("تم حذف السجل", MsgBoxStyle.Information, "حذف")
       CmdDelete = Nothing
   End Sub

طريقة الاستخدام فى اى حدث لديك فى الفورم

ستستخدم السطر بهذا الشكل مع تغيير اللازم طبقاً للمسميات لديك
كود :
       DeleteRowFrom_custdy_movement(Val(TextBox1.Text))

الان نقاط الشرح التى اريد شرحه والتنبيه عليه
عند صناعة كود Sub أو Function

لا تحتاج ان تضع بداخله كود Try 
ويكفى فقط استخدام Try فى الحدث اى عند تنفيذ الكود

فمثلاً بداخل الزر يكون الشكل على هذا النحو
كود :
       Try
           DeleteRowFrom_custdy_movement(Val(TextBox1.Text))
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try

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

لم اقوم بكتابة الكود كاملاً حتى يتثني لك استوعاب ما اقوم شرحة
ولكي لا تقع به مرة اخري

تذكر التعديل فى كود الـ Sub ليس فى ازالة الـ Try فقط بل فى تغير ايضاً
كود :
  Public Sub DeleteRowFrom_custdy_movement(ByVal Txtcustdy_codeW As TextBox)

الى
كود :
   Public Sub DeleteRowFrom_custdy_movement(ByVal Txtcustdy_codeW As Integer)

لاحظ الفرق بينهم

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: عبد العزيز البسكري , ابو روضة
#10
(06-01-19, 07:36 PM)elgokr كتب :
بعد مراجعة الكود فى ردك الاول بالاعلى

احببت ان اوضح تصحيح لكود مع شرح نقاط مهمة يجب الانتباه لها

فى البداية كود الاول الخاص بـ Sub يجب ان يكون بهذه الطريقة
كود :
   Public Sub DeleteRowFrom_custdy_movement(ByVal Txtcustdy_codeW As Integer)
       Dim CmdDelete As New SqlCommand
       With CmdDelete
           .Connection = Con
           .CommandType = CommandType.Text
           .CommandText = "Delete  From custdy_movement   Where custdy_code = " & Txtcustdy_codeW
       End With
       If Con.State = 1 Then Con.Close()
       Con.Open()
       CmdDelete.ExecuteNonQuery()
       Con.Close()
       MsgBox("تم حذف السجل", MsgBoxStyle.Information, "حذف")
       CmdDelete = Nothing
   End Sub

طريقة الاستخدام فى اى حدث لديك فى الفورم

ستستخدم السطر بهذا الشكل مع تغيير اللازم طبقاً للمسميات لديك
كود :
       DeleteRowFrom_custdy_movement(Val(TextBox1.Text))

الان نقاط الشرح التى اريد شرحه والتنبيه عليه
عند صناعة كود Sub أو Function

لا تحتاج ان تضع بداخله كود Try 
ويكفى فقط استخدام Try فى الحدث اى عند تنفيذ الكود

فمثلاً بداخل الزر يكون الشكل على هذا النحو
كود :
       Try
           DeleteRowFrom_custdy_movement(Val(TextBox1.Text))
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try

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

لم اقوم بكتابة الكود كاملاً حتى يتثني لك استوعاب ما اقوم شرحة
ولكي لا تقع به مرة اخري

تذكر التعديل فى كود الـ Sub ليس فى ازالة الـ Try فقط بل فى تغير ايضاً
كود :
  Public Sub DeleteRowFrom_custdy_movement(ByVal Txtcustdy_codeW As TextBox)

الى
كود :
   Public Sub DeleteRowFrom_custdy_movement(ByVal Txtcustdy_codeW As Integer)

لاحظ الفرق بينهم

تحياتى لك
وتمنياتى لك التوفيق

الله يكتب اجرك ويرزقك من حيث لاتحتسب . 

عملت معي الطريقة ولاكن ظهرت معي هذه الرسالة ؟ طبعا الرسالة تظهر في حالة وجود اكثر من سجل والحذف منها اما في حالة كان الحذف للسجل الاخير فلا تظهر .


الملفات المرفقة صورة/صور
   
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Wink [سؤال] سؤال حول البحث في قاعدة بيانات من نوع اكسس ahmadpal 1 14 منذ 2 ساعة مضت
آخر رد: asemshahen5
  [VB.NET] استعلام للبحث عن عدد تكرار كلمة في بيانات حقل واحد في سجل واحد tarek 0 25 أمس, 09:09 PM
آخر رد: tarek
  كيفية مشاركة قاعدة بيانات اكسس على الانترنت Lathe1 5 91 أمس, 08:48 PM
آخر رد: Lathe1
  [VB.NET] التعديل في احد اصفف DataGridView dubai.eig 5 72 أمس, 04:18 PM
آخر رد: حريف برمجة
  ترتيب البينات بترتيب مخصص datagridview Rabeea Qbaha 3 70 أمس, 12:30 PM
آخر رد: أبوبكر سويدان
  سؤال فى الفيجوال والاكسيس احمد خطاب 9 164 أمس, 01:28 AM
آخر رد: احمد خطاب
Wink [سؤال] سؤال حول عرض البيانات في كومبوبوكس ahmadpal 2 59 23-03-19, 11:42 PM
آخر رد: ahmadpal
  سؤال فى قواعد البيانات احمد خطاب 3 55 23-03-19, 02:28 PM
آخر رد: Emam emam
  سؤال في حماية البرنامج Emam emam 3 83 22-03-19, 11:46 PM
آخر رد: Emam emam
  [سؤال] أهلا وسهلا. هل يمكنم اعطائي كود برمجي يعطيني رسالة خطأ إذا لم تتصل بقاعدة بيانات عبر يونس جلال 0 38 22-03-19, 04:39 PM
آخر رد: يونس جلال

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم