الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

خطأ في عملية التحديث

مغلق
بدأه FreeWily في 22 ديسمبر 2007 · 16 رد · 1,914 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

يحدث في form 2 او form 3

عند اضافة منتج جديد ثم الضغط على خفظ يتم الحفظ ولكن عند حذف المنتج وعند الضغط على تحديث يحدث خطأ وانا اتعمل بطريقة off line

ويكتب الخطأ هذا

Concurrency violation: the DeleteCommand affected 0 of the expected 1 records.

وارفق المشروع واشكرركم على مساعدتي

Tafreda.rar

#2
اقتباس
يحدث في form 2 او form 3

......... ولكن عند حذف المنتج وعند الضغط على تحديث يحدث خطأ

أين زر الحدف في Form2 و Form3 ؟؟

Form2

post-107385-1198329672_thumb.jpg

Form3

post-107385-1198329729_thumb.jpg

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#3

سبب الظهر هو وجود سجل في جدول آخر مرتبط مع السجل الذي تم حذفة؟

الحل: إما تحذف السجل المرتبط به أولا ثم يتم حذف السجل الأساسي.

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

تم تعديل هذه المشاركة بواسطة Feras Nasser في 23 ديسمبر 2007 في 11:19

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#4

زرار الحذف هو ان تجعل المؤشر على السجل المراد حذف ثم الضغط على زر Delete

واشكر الاخ Feras Nasser

ولكن اتمنى توضيح هذا الحل فانا مبتدئ في هذه اللغة ولم افهم المطلوب جيدا

وكيف اقوم بتفعيل خاصية التكامل المرجعي

#5
اقتباس
Concurrency violation: the DeleteCommand affected 0 of the expected 1 records

:mad: كم أكره هذه الرسالة المزعجة :mad:

على حد علمي أنت لا تتعامل مع جداول مترابطه فأنت لا تحتاج إلى فرض التكامل المرجعي بحيث عند حذف السجل الاب يتم حذف السجلات الابناء . وكانت هذه المشكله وما زالت من المشاكل المحيره بالنسبة لي ، وسببها عندي هو كما هو معروف ان التحديث يتم عن طريق رقم الـ ID وعند التحديث يفقد الادبتر هذا الرقم ولا اعرف السبب حالياً ، ولديك حلان إحداهما ان تستخدم المعالج ( كما قيل لي ونفع إلى حد كبير رغم أني غير مقتنع بهذا الحل ) في الاتصال بقاعدة البيانات وتكوين الادوات المساعدة للتحكم بقاعدة البيانات ، والأخر التعديل على كود الحفظ عندك كي يصبح بالشكل التالي ( للمعلومية أنا مجربة على برنامجك ونجح ) :

	Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
		rec = kind.NewRow
		rec("branch") = TextBox1.Text.Trim
		kind.Rows.Add(rec)
		DataGridView1.Refresh()
		TextBox1.Enabled = False
		If dbs.HasChanges = True Then
			cmdb.DataAdapter = ad
			ad.Update(dbs, "ADDbran")
			dbs.AcceptChanges()
			dbs.Tables.Remove("ADDbran")
			ad.Fill(dbs, "ADDbran")
		End If
	End Sub

وفي قسم ADO.NET امثلة لا بأس بها . كما أرجو كتابة أي استفسار خاص بـ ADO.NET في قسمه الخاص . والموضوع ما زال قيد البحث ..

تم تعديل هذه المشاركة بواسطة yaseralshikh في 23 ديسمبر 2007 في 08:30

1 - سقوط الإنسان ليس فشلاً ، ولكن الفشل أن يبقى حيث سقط .

2 - الفاشلون قسمان : قسم فكر ولم يفعل ، وقسم فعل ولم يفكر .

-------------------------------------------------------

درس في ADO.NET 2005, التعامل مع الجداول المترابطة في ado.net 2005

درس في الإجراءات الفرعية ( العامة )

درس في ADO.NET من الصفر إلى الإحتراف .

#6

السلام عليكم،

النقطة الأولى:

أخي الكرم ما هو نوع حقل المفتاح الرئيسي للجدول، هل هو double ؟

وإذا أمكن أود كود الحذف فقط؟

النقطة الثانية:

أغلب من واجهة هذه المشكلة بسبب عدم قدرة DataSet تحديد الـــ PK. البعض ذكر استخدام FillSchema.

لا حاجة لتنزيل الملف إعرضها في ردك.

تم تعديل هذه المشاركة بواسطة Feras Nasser في 23 ديسمبر 2007 في 11:34

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#7
Feras Nasser كتب:
السلام عليكم،

النقطة الأولى:

أخي الكرم ما هو نوع حقل المفتاح الرئيسي للجدول، هل هو double ؟

وإذا أمكن أود كود الحذف فقط؟

النقطة الثانية:

أغلب من واجهة هذه المشكلة بسبب عدم قدرة DataSet تحديد الـــ PK. البعض ذكر استخدام FillSchema.

لا حاجة لتنزيل الملف إعرضها في ردك.

#8

زرار الحذف هو ان تجعل المؤشر على السجل المراد حذف ثم الضغط على زر Delete

واشكر الاخ Feras Nasser

ولكن اتمنى توضيح هذا الحل فانا مبتدئ في هذه اللغة ولم افهم المطلوب جيدا

وكيف اقوم بتفعيل خاصية التكامل المرجعي

وسوف اقوم بتجربة الاخ الكريم yaseralshikh

واشكركم على المساعدة

#9
اقتباس
كم أكره هذه الرسالة المزعجة

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

#10

ابحث في مواضيع FillSchema وكيفية استخدامها. حاولت ابحث عن مصدر بالانترنت، وورد وجود مشكلة في الــ DataSet أو بالمعنى الأصح لا يعمل بشكل صحيح إذا كان الـ PK من نوع double.لهذا السبب سألتك ما هو نوع الــ PK للجدول.

تم تعديل هذه المشاركة بواسطة Feras Nasser في 23 ديسمبر 2007 في 16:58

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#11

اخي العزيز

تاكد من نافذة خصائص قاعدة البيانات ماهو خيار "Copy to output directory" فاذا كان "copy always" وهو الاختيار الافتراضي فقد تكون طريقة الاستاذ ياسر تعمل بشكل صحيح

ولكي تتاكد من ان الطريقة التي بينها الاستاذ ياسر الشيخ تعمل افتح قاعدة البيانات الموجودة في مجلد bin\debug وانظر هل تم تحديث البيانات فيها بعد ان قمت بضغط زر التحديث في البرنامج فان تم التحديث معناه الكود سليم

لا تنسونا من الدعاء لوالدتي بالاجر و الشفاء

#12
اقتباس
تاكد من نافذة خصائص قاعدة البيانات ماهو خيار "Copy to output directory" فاذا كان "copy always" وهو الاختيار الافتراضي فقد تكون طريقة الاستاذ ياسر تعمل بشكل صحيح

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

اقتباس
لهذا السبب سألتك ما هو نوع الــ PK للجدول.

عذارا فانا مبتدئ ولا اعرف ما هو ال PK

#13
FreeWily كتب:
كيف اتاكد من نافذة خصائص قاعدة البيانات واين توجد وشكرا على المساعدة

عذارا فانا مبتدئ ولا اعرف ما هو ال PK

هو الحقل صاحب المفتاح الرئيسي/الأساسي للجدول أو ما تسمى Primary Key

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#14
اقتباس
أغلب من واجهة هذه المشكلة بسبب عدم قدرة DataSet تحديد الـــ PK. البعض ذكر استخدام FillSchema

pk من نوع longintger

وكيف استخدم ال

fillschema

#15

قد ينفعك هذا الموقع http://p2p.wrox.com/topic.asp?TOPIC_ID=503

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#16

أخي Free Wily الكود الذي كتبته لك صحيح وقد قام بالعمل على أكمل وجه واختفت الرساله المزعجة ، وظهرت لك مشكلة جديده في زر التحديث وحلها هو الاستغناء عن الشرط If dbs.HasChanges = True Then .... بلا بلا بلا .... End If ، وارجو استخدام الخاصية HasChanges في مكانها الصحيح أي عند الحاجه فأنت هنا لا تحتاج إليها ، وللمزيد من المعلومات عنها يمكنك الرجوع الى الدروس التي في توقيعي ففيها ما يغنيك كمبتدئ إن شاء الله ..

تم تعديل هذه المشاركة بواسطة yaseralshikh في 24 ديسمبر 2007 في 08:28

1 - سقوط الإنسان ليس فشلاً ، ولكن الفشل أن يبقى حيث سقط .

2 - الفاشلون قسمان : قسم فكر ولم يفعل ، وقسم فعل ولم يفكر .

-------------------------------------------------------

درس في ADO.NET 2005, التعامل مع الجداول المترابطة في ado.net 2005

درس في الإجراءات الفرعية ( العامة )

درس في ADO.NET من الصفر إلى الإحتراف .

#17

أخي Free Wily لقد أحضرت لك ما هو أفضل مما ذكرته لك سابقاً ، وسوف تجده في الرابط الموجود في توقيعي والذي يحمل اسم " درس في ADO.NET من الصفر إلى الإحتراف ." وبالتحديد المشاركة رقم 141 ، أرجو أن تنال الفائده منه وان يعجبك ، ولعلمك أنا طبقته على برنامجك قبل التعديلات السابقه وذهبت تلك الرسالة إلى حيث لن تراها بإذن الله ..

أخوك / ياسر الشيخ .

1 - سقوط الإنسان ليس فشلاً ، ولكن الفشل أن يبقى حيث سقط .

2 - الفاشلون قسمان : قسم فكر ولم يفعل ، وقسم فعل ولم يفكر .

-------------------------------------------------------

درس في ADO.NET 2005, التعامل مع الجداول المترابطة في ado.net 2005

درس في الإجراءات الفرعية ( العامة )

درس في ADO.NET من الصفر إلى الإحتراف .

هذا الموضوع مغلق.

مواضيع مشابهة