24-05-18, 03:46 PM
update school set arround2= (SELECT Count(id) from student2 where artak2='دون' )
يظهر الرسالة
Operation must use an updateable query.
يظهر الرسالة
Operation must use an updateable query.
ما الخطأ في هذه الجملة
|
24-05-18, 03:46 PM
update school set arround2= (SELECT Count(id) from student2 where artak2='دون' )
يظهر الرسالة Operation must use an updateable query.
24-05-18, 03:58 PM
يجب أن تحدد اسم حقل العدد فى الاستعلام
جرب هذه الجملة كود : update school set arround2= (SELECT Count(id) AS CountOfID from student2 where artak2='دون' )
24-05-18, 04:19 PM
(آخر تعديل لهذه المشاركة : 24-05-18, 04:45 PM {2} بواسطة atefkhalf2004.)
كود : cmd.CommandText = " update school set arround2= (SELECT Count(id) as CountOfID from student2 where artak2='دون' ) " Operation must use an updateable query. ما يدهشتي ان الجملة صحيحة من وجهة نظري يا ريت احد يعرق الخطأ فين ؟؟؟؟؟ لتوضيح اين يقع الخطاء
شوف هنا كده
انت الان تقوم بتطبيق هذا الشكل من الكود كما يلى كود : update school set arround2= (SELECT Count(id) as CountOfID from student2 where artak2='دون' ) تحويله منطقياً للهدف المطلوب كود : update school set arround2=20 هل تلاحظ ما ينقص الكود هنا
انت حالياً بتطلب من قاعدة البيانات عمل تحديث بجدول school
وهو بطبيعى هيقول حاضر مع السؤال فى اى جزء بهذا الجدول
فجت الجزء خاصة Set اللى بتطلب منه لقيمة arround2
فلما جه يطبق حدث الخطاء انك لم تقم بتعريف arround2 لاى شخص داخل الجدول
وبذلك عليه التطبيق على كل الجدول
لذلك يجب اضافة where
لان من المنطق الكود يكون بهذا الشكل كود : update school set arround2=20 where id=1 ليتحول الكود الى طريقة كتابتك كود : update school set arround2= (SELECT Count(id) as CountOfID from student2 where artak2='دون' ) where id=??? ولكن الخطاء هنا وارد ان يكون عن القيمة المدخلة
بما انك عامل استعلام لجلب اليمة من الممكن الجول لا يحتوى على id خاصة Count(id)
وبما ان فى خطاء بالجزء ده تسبب فى تعطيل التنفيذ
يارب يكون الشرح مبسط ويوضح ما سبب الخطاء وكيفية التعامل معها دائماً
كل ما عليك هو تغيير جزء PHP كود : id=??? للمعرف الذى يوم بتغيير قيمة arround2 منه
تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ] ساهم دائماً فى لكل من يقوم بالمساهمة فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله ▼ شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
24-05-18, 04:55 PM
(آخر تعديل لهذه المشاركة : 24-05-18, 04:56 PM {2} بواسطة atefkhalf2004.)
السيد الفاضل هو سجل واحد في الجدول school
شرحك جميل لكن هو سجل واحد المطلوب تحديث الحقل arround بالقيمة التي يقراها من جملة select الثانية المطلب تحيث كل الحقل في جدول school تغلبت عليه بالكود لتالي لكن ما الخطأ في الكود السابق للتعلم وتوفير الوقت 'cmd18.CommandText = " SELECT Count(*) as totalar from student2 where artak2='دون' " 'Conn.Open() 'DR1 = cmd18.ExecuteReader 'DR1.Read() 'cmd.CommandText = " update school set arround2=" & DR1.Item("totalar") & " " 'cmd.ExecuteNonQuery() 'Conn.Close()
24-05-18, 05:12 PM
(24-05-18, 04:55 PM)atefkhalf2004 كتب : السيد الفاضل هو سجل واحد في الجدول school لا يوجد اختلاف بين الكود السابق والكود الحالى
فقط ما قمت به هو عمل كود الاستعلام مستقلاً
من ثم قمت بجلب قيمة الاستعلام للحقل المطلوب تحديث قيمته
فقط قم بتجربة كلاً من الاكواد التالية بدلاً من :
استبدل : بـ كود : cmd.CommandText = "update school set arround2=(SELECT Count(id) from student2 where artak2='دون')" أو ان لم يعمل الكود وظهر خطاء بـ كود : cmd.CommandText = "update school set arround2=(SELECT Count(*) from student2 where artak2='دون')" أو بـ كود : cmd.CommandText = "update school set arround2=(SELECT Count(*) as totalar from student2 where artak2='دون')" تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ] ساهم دائماً فى لكل من يقوم بالمساهمة فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله ▼ شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
24-05-18, 05:17 PM
الاحظ الثلاث جمل واحد لا يوجد اختلاف وجاري التجربة
وان كان نفس الكود شكرا وجاري
24-05-18, 05:20 PM
(24-05-18, 05:17 PM)atefkhalf2004 كتب : الاحظ الثلاث جمل واحد لا يوجد اختلاف وجاري التجربة نعم الثلاثة واحد وكلاهمها نفس الناتج
وكل الفرق بينهم جلب الاجمالى عن طريق عمود ID والاخر للجميع
لكن ما اريد ملاحظته اذا ظهر اى رسالة خطاء مع كتابة معينة منهم او لا فقط ليس اكثر
تحياتى لك
وبانتظار ردك
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ] ساهم دائماً فى لكل من يقوم بالمساهمة فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله ▼ شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
24-05-18, 06:17 PM
اعتذر اليك أخى الكريم
ففى المشاركة الاولى حاولت التعديل بشكل سريع دون التمعن فى الكود و لكن بعد اعادة النظر هذا الاستعلام لن يعطيك ما تريد لماذا؟ لأن الاستعلام الداخلى ستكون نتيجته عبارة عن جدول و عملية التحديث تحتاج الى قيمة محددة لاستخدامها فى عملية التحديث لذلك حتى يمكنك اتمام عملية التحديث بشكل صحيح يجب أن تربط الجدولين داخل الاستعلام ثم تحديث كل صف بالقيمة المقابلة و لكن ماذا لو كان الجدولين غير مرتبطين فى هذه الحالة سنلجأ الى دالة من دوال الاكسس و هى عبارة عن استعلام و لكن نتيجته قيمة محددة و هى دالة DCount و تطبيقا على ذلك جرب هذا الكود كود : UPDATE school SET arround2 = DCount("id","student2"";"artak2='دون'");
24-05-18, 09:38 PM
(آخر تعديل لهذه المشاركة : 24-05-18, 09:43 PM {2} بواسطة atefkhalf2004.)
السادة الافاضل
السيد الجوكر الثلاث جمل نفس النتيجة السيد [b]mrnooo2000[/b] الجملة في اكسس وفي الفيجوال اعطت خطأ خط ازرق تحت كود : ;"artak2='دون'" اتمني الحصول علي اجابة يظهر الرسالة Operation must use an updateable query. |
|