RE: طريقة نقل المعلومات من DataGridView1 إلى DataGridView2 والحفظ - dell - 26-07-18
(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)سعود كتب :
ركز بالصورة وهي خطا بكود التحقق من الاتصال
اوووووووووه معلش!!!
يجب علي انا ان اتاكد
صدقت ههههههههههه انا مكرر جملة الاتصال connn و conn ملخبط بينها
RE: طريقة نقل المعلومات من DataGridView1 إلى DataGridView2 والحفظ - elgokr - 26-07-18
(26-07-18, 08:04 PM)سعود كتب :
ركز بالصورة وهي خطا بكود التحقق من الاتصال
اوووووووووه معلش!!!
يجب علي انا ان اتاكد
لا اخى سعود انت صح فى توضيح الصورة وليكن بالطريقة الثانية
وهى انه يستخدم التحقق من فتح واغلاق الاتصال تحت اسم connn
بينما فى كود الاستعلام يستخدم
فيجب عليك ان يزيد ايضاُ فى كود الاستعلام حرف n
أو انه زيل حرف n من سطر التحقق وسطر الاغلاق بالاسفل
وكما وضح الاخ Done مشيراً لهذه النقطة ايضاً
عند اطلاعى على الموضوع لم الاحظ الا الصورة فقط
لذلك لا اعلم محتوى الكود المستخدم
لكنت عند اطلاعى الان على الموضوع وجت الكود الذى بالرد
ووضح لى السبب اكثر لماذا يظهر رسالة ان الاتصال مغلق
فيجب صاحب المشكلة الانتباه الى هذا الامر....
RE: طريقة نقل المعلومات من DataGridView1 إلى DataGridView2 والحفظ - Done - 26-07-18
(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 ضمن البيانات
النقطة الثانية لابد من تعبئة الداتاجريدفيو بعد الاضافة والتعديل لتحديث البيانات المعروضة
RE: طريقة نقل المعلومات من DataGridView1 إلى DataGridView2 والحفظ - elgokr - 26-07-18
(26-07-18, 08:37 PM)Done كتب : من الصورة الاخيرة يبدو ان id_tsjel_subj ليس مفتاح اساسي والدليل تكرار الارقام في الصورة،
يجب ان تعتمد على مفتاح اساسي لوضعه في WHERE وارجاع id_tsjel_subj ضمن البيانات
النقطة الثانية لابد من تعبئة الداتاجريدفيو بعد الاضافة والتعديل لتحديث البيانات المعروضة
قم تكون البيانات التى تعرض مكررة 4 مرات
تحياتى لك
وتمنياتى لك التوفيق
RE: طريقة نقل المعلومات من DataGridView1 إلى DataGridView2 والحفظ - dell - 27-07-18
جزاكم الله خير فعلاً لم يكن id_tsjel_subj أساسي لأنه يرجع خطاء في الإظافة فقمت ب جعله كحقل رقم فقط وعند التحديث لم يعمل الحفظ بشكل سليم
الحلول التي عملت بها جعل id_tsjel_subj أساسي
حذف id_tsjel_subj في زر الاظاقة
في زر التعديل أظفت id_tsjel_subj
الخلاصة id_tsjel_subj هو سبب المشاكل
الحمد لله تم الحل أشكركم جميعاً ولاحرمكم الله الأجر
Done و elgokr و سعود
|