المشاركات : 57
المواضيع 15
الإنتساب : May 2017
السمعة :
1
الشكر: 168
تم شكره 84 مرات في 41 مشاركات
(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 ملخبط بينها
المشاركات : 3,815
المواضيع 36
الإنتساب : Mar 2014
السمعة :
724
الشكر: 7238
تم شكره 6709 مرات في 3265 مشاركات
(26-07-18, 08:04 PM)سعود كتب :
ركز بالصورة وهي خطا بكود التحقق من الاتصال
اوووووووووه معلش!!!
يجب علي انا ان اتاكد
لا اخى سعود انت صح فى توضيح الصورة وليكن بالطريقة الثانية
وهى انه يستخدم التحقق من فتح واغلاق الاتصال تحت اسم connn
بينما فى كود الاستعلام يستخدم
فيجب عليك ان يزيد ايضاُ فى كود الاستعلام حرف n
أو انه زيل حرف n من سطر التحقق وسطر الاغلاق بالاسفل
وكما وضح الاخ Done مشيراً لهذه النقطة ايضاً
عند اطلاعى على الموضوع لم الاحظ الا الصورة فقط
لذلك لا اعلم محتوى الكود المستخدم
لكنت عند اطلاعى الان على الموضوع وجت الكود الذى بالرد
ووضح لى السبب اكثر لماذا يظهر رسالة ان الاتصال مغلق
فيجب صاحب المشكلة الانتباه الى هذا الامر....
المشاركات : 50
المواضيع 1
الإنتساب : Jun 2018
السمعة :
17
الشكر: 406
تم شكره 96 مرات في 52 مشاركات
(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 ضمن البيانات
النقطة الثانية لابد من تعبئة الداتاجريدفيو بعد الاضافة والتعديل لتحديث البيانات المعروضة
المشاركات : 3,815
المواضيع 36
الإنتساب : Mar 2014
السمعة :
724
الشكر: 7238
تم شكره 6709 مرات في 3265 مشاركات
(26-07-18, 08:37 PM)Done كتب : من الصورة الاخيرة يبدو ان id_tsjel_subj ليس مفتاح اساسي والدليل تكرار الارقام في الصورة،
يجب ان تعتمد على مفتاح اساسي لوضعه في WHERE وارجاع id_tsjel_subj ضمن البيانات
النقطة الثانية لابد من تعبئة الداتاجريدفيو بعد الاضافة والتعديل لتحديث البيانات المعروضة
قم تكون البيانات التى تعرض مكررة 4 مرات
تحياتى لك
وتمنياتى لك التوفيق
المشاركات : 57
المواضيع 15
الإنتساب : May 2017
السمعة :
1
الشكر: 168
تم شكره 84 مرات في 41 مشاركات
|