منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : طريقة نقل المعلومات من DataGridView1 إلى DataGridView2 والحفظ
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
(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
(26-07-18, 08:04 PM)سعود كتب : [ -> ]
ركز بالصورة وهي خطا بكود التحقق من الاتصال

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


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


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

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

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

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

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

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

فيجب صاحب المشكلة الانتباه الى هذا الامر....
(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 ضمن البيانات


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

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


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


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


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

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

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

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

Done Heart و elgokr Heart و سعود  Heart
الصفحات : 1 2