تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] طريقة نقل المعلومات من DataGridView1 إلى DataGridView2 والحفظ
#11
(26-07-18, 07:50 PM)elgokr كتب :
بخصوص التعديل
بعد الكلمة التالية Set
ستجد هذه الجملة
كود :
[id_tsjel_subj] = ?

قم بحذفها 
ويكتفي ان تجعلها باخر كود الاستعلام لتصبح
كود :
WHERE [id_tsjel_subj] = ?

لان الاى دى فى التعديل لا يعدل
بل يتم الاستعانة به لاتمام تعديل البيانات التى تعمل الاى دى المطلوب

ثانياً سطر كود الاستعلام يجب ان يكون بداخل For وايضاً سطر التحقق من فتح واغلاق الـ connn


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


جزاك اله الف خير أخوي ملاحظة مهمة



(26-07-18, 08:03 PM)Done كتب :
(26-07-18, 07:34 PM)dell كتب : أخواني معليش تعبتكم معاي .. في حالة التعديل يظهر لي خطاء

كود :
Dim cmds As New SqlCommand("UPDATE tsjel_subj SET [id_tsjel_subj] =?, [Password] =?, [id_number] =?, [FirstName] =?, [name_dorh] =?, [number_dorh] =?, [subj] =?", conn)

        If connn.State <> ConnectionState.Open Then connn.Open()
        For Each saf As DataGridViewRow In DataGridView1.Rows
            If saf.IsNewRow Then Exit For
            cmds.Parameters.Clear()
            cmds.Parameters.AddWithValue("@id_tsjel_subj", saf.Cells(0).Value.ToString)
            cmds.Parameters.AddWithValue("@Password", saf.Cells(1).Value.ToString)
            cmds.Parameters.AddWithValue("@id_number", saf.Cells(2).Value.ToString)
            cmds.Parameters.AddWithValue("@FirstName", saf.Cells(3).Value.ToString)
            cmds.Parameters.AddWithValue("@name_dorh", saf.Cells(4).Value.ToString)
            cmds.Parameters.AddWithValue("@number_dorh", saf.Cells(5).Value.ToString)
            cmds.Parameters.AddWithValue("@subj", saf.Cells(6).Value.ToString)
            cmds.ExecuteNonQuery()
        Next
        connn.Close()

        MsgBox("تم الحفظ   بنجاح", MsgBoxStyle.MsgBoxRight, "")



الخطأ يشير الى ان الاتصال مغلق والسبب أن لديك متغيرا للاتصال احدهم conn والاخر connn،
ثم اعتمدت على conn في الامر command في حين أنك تفتح الاتصال connn
 
النقطة الثانية التي ستواجهك هي
قاعدة بيانات SQLServer لا يتعامل مع ؟ lمثل الاكسس،
بل لابد من تسمية البارامترات

النقطة الخيرة والطيرة التي أغفلتها هي ما ذكرهاالاخ algokr وهي يجب تحديد السطر ب WHERE والذي تريد التعديل حتى لا تقوم بتغيير جميع اسطر الجدول بنفس البيانات

PHP كود :
Dim cmds As New SqlCommand("UPDATE tsjel_subj SET [Password] =@Password, [id_number] =@id_number, [FirstName] =@FirstName, [name_dorh] =@name_dorh, [number_dorh] =@number_dorh, [subj] =@subj WHERE [id_tsjel_subj] =@id_tsjel_subj "connn)

If 
connn.State <> ConnectionState.Open Then connn.Open()
For 
Each saf As DataGridViewRow In DataGridView1.Rows
    If saf
.IsNewRow Then Exit For
 
   cmds.Parameters.Clear()
 
   cmds.Parameters.AddWithValue("@id_tsjel_subj"saf.Cells(0).Value.ToString)
 
   cmds.Parameters.AddWithValue("@Password"saf.Cells(1).Value.ToString)
 
   cmds.Parameters.AddWithValue("@id_number"saf.Cells(2).Value.ToString)
 
   cmds.Parameters.AddWithValue("@FirstName"saf.Cells(3).Value.ToString)
 
   cmds.Parameters.AddWithValue("@name_dorh"saf.Cells(4).Value.ToString)
 
   cmds.Parameters.AddWithValue("@number_dorh"saf.Cells(5).Value.ToString)
 
   cmds.Parameters.AddWithValue("@subj"saf.Cells(6).Value.ToString)
 
   cmds.ExecuteNonQuery()
Next
connn
.Close()

MsgBox("تم الحفظ   بنجاح"MsgBoxStyle.MsgBoxRight""

احذف المتغير conn وليكن لديك متغير واحد للاتصال

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



(26-07-18, 08:04 PM)سعود كتب :
ركز بالصورة وهي خطا بكود التحقق من الاتصال

اوووووووووه معلش!!!
يجب علي  انا ان اتاكدSad

صدقت ههههههههههه انا مكرر جملة الاتصال connn و conn  ملخبط بينها  Big Grin
الرد }}}
تم الشكر بواسطة: elgokr , Done , Done , سعود , سعود
#12
(26-07-18, 08:04 PM)سعود كتب :
ركز بالصورة وهي خطا بكود التحقق من الاتصال

اوووووووووه معلش!!!
يجب علي  انا ان اتاكدSad


لا اخى سعود انت صح فى توضيح الصورة وليكن بالطريقة الثانية


وهى انه يستخدم التحقق من فتح واغلاق الاتصال تحت اسم connn

بينما فى كود الاستعلام يستخدم 
كود :
, conn)

فيجب عليك ان يزيد ايضاُ فى كود الاستعلام حرف n
أو انه زيل حرف n من سطر التحقق وسطر الاغلاق بالاسفل 

وكما وضح الاخ Done مشيراً لهذه النقطة ايضاً

عند اطلاعى على الموضوع لم الاحظ الا الصورة فقط
لذلك لا اعلم محتوى الكود المستخدم

لكنت عند اطلاعى الان على الموضوع وجت الكود الذى بالرد
ووضح لى السبب اكثر لماذا يظهر رسالة ان الاتصال مغلق

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

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: Done , سعود , dell
#13
(26-07-18, 08:28 PM)dell كتب :
(26-07-18, 08:03 PM)Done كتب :
(26-07-18, 07:34 PM)dell كتب : أخواني معليش تعبتكم معاي .. في حالة التعديل يظهر لي خطاء

كود :
Dim cmds As New SqlCommand("UPDATE tsjel_subj SET [id_tsjel_subj] =?, [Password] =?, [id_number] =?, [FirstName] =?, [name_dorh] =?, [number_dorh] =?, [subj] =?", conn)

        If connn.State <> ConnectionState.Open Then connn.Open()
        For Each saf As DataGridViewRow In DataGridView1.Rows
            If saf.IsNewRow Then Exit For
            cmds.Parameters.Clear()
            cmds.Parameters.AddWithValue("@id_tsjel_subj", saf.Cells(0).Value.ToString)
            cmds.Parameters.AddWithValue("@Password", saf.Cells(1).Value.ToString)
            cmds.Parameters.AddWithValue("@id_number", saf.Cells(2).Value.ToString)
            cmds.Parameters.AddWithValue("@FirstName", saf.Cells(3).Value.ToString)
            cmds.Parameters.AddWithValue("@name_dorh", saf.Cells(4).Value.ToString)
            cmds.Parameters.AddWithValue("@number_dorh", saf.Cells(5).Value.ToString)
            cmds.Parameters.AddWithValue("@subj", saf.Cells(6).Value.ToString)
            cmds.ExecuteNonQuery()
        Next
        connn.Close()

        MsgBox("تم الحفظ   بنجاح", MsgBoxStyle.MsgBoxRight, "")



الخطأ يشير الى ان الاتصال مغلق والسبب أن لديك متغيرا للاتصال احدهم conn والاخر connn،
ثم اعتمدت على conn في الامر command في حين أنك تفتح الاتصال connn
 
النقطة الثانية التي ستواجهك هي
قاعدة بيانات SQLServer لا يتعامل مع ؟ lمثل الاكسس،
بل لابد من تسمية البارامترات

النقطة الخيرة والطيرة التي أغفلتها هي ما ذكرهاالاخ algokr وهي يجب تحديد السطر ب WHERE والذي تريد التعديل حتى لا تقوم بتغيير جميع اسطر الجدول بنفس البيانات

PHP كود :
Dim cmds As New SqlCommand("UPDATE tsjel_subj SET [Password] =@Password, [id_number] =@id_number, [FirstName] =@FirstName, [name_dorh] =@name_dorh, [number_dorh] =@number_dorh, [subj] =@subj WHERE [id_tsjel_subj] =@id_tsjel_subj "connn)

If 
connn.State <> ConnectionState.Open Then connn.Open()
For 
Each saf As DataGridViewRow In DataGridView1.Rows
    If saf
.IsNewRow Then Exit For
 
   cmds.Parameters.Clear()
 
   cmds.Parameters.AddWithValue("@id_tsjel_subj"saf.Cells(0).Value.ToString)
 
   cmds.Parameters.AddWithValue("@Password"saf.Cells(1).Value.ToString)
 
   cmds.Parameters.AddWithValue("@id_number"saf.Cells(2).Value.ToString)
 
   cmds.Parameters.AddWithValue("@FirstName"saf.Cells(3).Value.ToString)
 
   cmds.Parameters.AddWithValue("@name_dorh"saf.Cells(4).Value.ToString)
 
   cmds.Parameters.AddWithValue("@number_dorh"saf.Cells(5).Value.ToString)
 
   cmds.Parameters.AddWithValue("@subj"saf.Cells(6).Value.ToString)
 
   cmds.ExecuteNonQuery()
Next
connn
.Close()

MsgBox("تم الحفظ   بنجاح"MsgBoxStyle.MsgBoxRight""

احذف المتغير conn وليكن لديك متغير واحد للاتصال

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


من الصورة الاخيرة يبدو ان id_tsjel_subj ليس مفتاح اساسي والدليل تكرار الارقام في الصورة،

يجب ان تعتمد على مفتاح اساسي لوضعه في WHERE وارجاع id_tsjel_subj ضمن البيانات


النقطة الثانية لابد من تعبئة الداتاجريدفيو بعد الاضافة والتعديل لتحديث البيانات المعروضة
الرد }}}
تم الشكر بواسطة: elgokr , dell
#14
(26-07-18, 08:37 PM)Done كتب : من الصورة الاخيرة يبدو ان id_tsjel_subj ليس مفتاح اساسي والدليل تكرار الارقام في الصورة،

يجب ان تعتمد على مفتاح اساسي لوضعه في WHERE وارجاع id_tsjel_subj ضمن البيانات


النقطة الثانية لابد من تعبئة الداتاجريدفيو بعد الاضافة والتعديل لتحديث البيانات المعروضة


قم تكون البيانات التى تعرض مكررة 4 مرات


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

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: Done , Done , dell
#15
جزاكم الله خير فعلاً لم يكن id_tsjel_subj أساسي لأنه يرجع خطاء في الإظافة فقمت ب جعله كحقل رقم فقط وعند التحديث لم يعمل الحفظ بشكل سليم

الحلول التي عملت بها جعل id_tsjel_subj أساسي 
حذف id_tsjel_subj  في زر الاظاقة 
في زر التعديل أظفت id_tsjel_subj 

الخلاصة id_tsjel_subj  هو سبب المشاكل  Big Grin 

الحمد لله تم الحل أشكركم جميعاً ولاحرمكم الله الأجر

Done Heart و elgokr Heart و سعود  Heart
الرد }}}
تم الشكر بواسطة: elgokr


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] طريقة استدعاء مكتبة dll عبد الناصر موسى 3 1,457 10-04-24, 04:33 AM
آخر رد: emadahmed1995
  [VB.NET] طريقة التعلم بخطوات صحيحة للتعلم و المعرفة انمار الرواي 0 61 31-03-24, 08:23 PM
آخر رد: انمار الرواي
  محتاج طريقة لتنسيق نص الرسالة المرسلة إلى الواتس اب new_programer 2 205 04-03-24, 07:15 AM
آخر رد: new_programer
  طريقة اجراء نسخة احتياطية و استرجاعها ؟ Osama NY 2 473 07-02-24, 08:59 PM
آخر رد: Kamil
  ماهي طريقة نقل محتويات checkedlistbox الى داتاقريدفيو صالح عبدالله 3 261 06-01-24, 03:20 PM
آخر رد: Kamil
  [VB.NET] ما هي طريقة استدعاء الازرار في الكيبورد من خلار زر افتراضي haider.mohsin92 1 302 14-12-23, 03:19 PM
آخر رد: Kamil
  طريقة عرض التقرير كريستال ريبورت في جهاز العميل Adel27213 2 353 10-12-23, 04:03 AM
آخر رد: Adel27213
  طريقة إسناد اكثر من جدول للكريستال ريبورت Adel27213 2 361 25-11-23, 11:51 PM
آخر رد: Adel27213
  طريقة تحويل الأرقام إلى حروف Adel27213 2 530 18-11-23, 01:40 AM
آخر رد: sniper2030
  التحكم فى عرض طريقة التاريخ فى الاداة datetimepicker Ahmed.vb 3 516 08-11-23, 01:27 AM
آخر رد: الحزين اليماني

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


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