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

مشكلة في Insert ارجو المساعده

مغلق
بدأه تمهيدي في 1 يوليو 2007 · 7 رد · 950 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي مشكله بسيطه في ASP .Net

انا أريد تصميم صفحة لادخال بيانات على قاعده بيانات من نوع Access

استخدمت الاداة AccessDataSource

و وضعت حقول من نوع text و زر للاضافه

و ربطت جمله Insert في الداتا سورس بالحقول بطريقة Control

و وضعت جملة accessDataSource1.insert()

عند الضغط على الزر

و لكن حينما جربت الموقع على السيرفر و ادخلت البيانات و ضغطت زر الاضافة

يظهر لي خطأ

System.Data.OleDb.OleDbException: Operation must use an updateable query[/b].

الرجاء مساعدتي في هذا الخطأ و كيفية حله

شكرا لكم

{ وقل رب زدني علماً }

#2
تمهيدي كتب:
السلام عليكم

لدي مشكله بسيطه في ASP .Net

انا أريد تصميم صفحة لادخال بيانات على قاعده بيانات من نوع Access

استخدمت الاداة AccessDataSource

و وضعت حقول من نوع text و زر للاضافه

و ربطت جمله Insert في الداتا سورس بالحقول بطريقة Control

و وضعت جملة accessDataSource1.insert()

عند الضغط على الزر

و لكن حينما جربت الموقع على السيرفر و ادخلت البيانات و ضغطت زر الاضافة

يظهر لي خطأ

System.Data.OleDb.OleDbException: Operation must use an updateable query[/b].

الرجاء مساعدتي في هذا الخطأ و كيفية حله

شكرا لكم

عليك أن تقوم بتعريف كويري من أجل عملية التعديل Update, بالنسبة لأي DataSource هنالك 4 أنواع من العمليات, لكل منها كويري Query خاصة. العمليات هي :

1-انتقاء Select

2-إدخال Insert .

3-تعدبل Update

4-حذف Delete. -أفضل عدم استخدام كلمة الغاء لآنها يمكن أن تفهم خطأ على أنها عملية Cancel.

هذه الكويري Query يتم توليدها بطريقة آلية عند استخدام واجهة مساعدة التعريف للداتا سورس. لكن يجب الانتباه أن تضغط على زر Advanced أثناء عملية التعريف و أن تقوم بتفعيل الخيار الأول في النافذة التي تظهر.إذا لم تقم بتفعيل الخيار الموجود عبر زر Advanced فستحصل على داتا سورس له, فقط, Select query. و هذا هو أغلب الظن سبب المشكل الذي تتعرض له.

للتغلب على هذه الحالة, هناك حلين :

1- قم بحذف ال DataSourceObject الذي تتعامل معه و إعادة تعريف آخر جديد مع الأخذ بالحسبان الملاحظات السابقة.

2-إن واجهة مساعدة التعريف ليست نهائية إذ يمكنك أن تضيف في أي لحظة ما ينقصك من ال Query من خلال قائمة الخصائص Properties الخاصة بالداتاسورس. من أجل ذلك قم بالتفر على حقل UpdateQuery - أو SelectQuery, DeleteQuery, أو InsertQuery -من ال Properties الخاصة بالداتاسورس ثم استخدم الواجهة التي تظهر لتعريف ال Query للعملية التي تريد إضافتها أو تعديلها. طبعا يجب أن تكون ملما بلغة SQL و لكن هذا ليس بالمهمة الشاقة, و اللبيب من الإشارة يفهم.

#3

شكرا لك أخ كامل

كلامك جميل يدل على فهم عميق

جزاك الله خيرا

#4
Arwany كتب:
شكرا لك أخ كامل

كلامك جميل يدل على فهم عميق

جزاك الله خيرا

العفو يا أخ أنور و شكرا لك على التعليق الجميل. و مالعلم إلا من عند الله فالعلم للجميع إن شاء الله.

#6

هذه المشكلة غالبا ما تكون مشكلة صلاحيات

جرب التالي :

اضف هذا السظر في ملف web.config

<identity impersonate='true' />

تم تعديل هذه المشاركة بواسطة Scoool في 2 يوليو 2007 في 09:26

#7

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

هل لك ان تشرح لي أين أضع هذا الكود بالضبط في ملف web.config

لأني حاولت وضعه لكن كل مرة يظهر خطأ او يرجع نفس الخطأ السابق

و ايضا لدي مشكلة في اضافه البيانات على قاعده بيانات من نوع SQL SERVER

دائما يظهر الخطأ Database is Read Only

شكرا لمساعدتكم و خالص تحياتي

{ وقل رب زدني علماً }

#8

الأمر لا علاقة به ب web.config, أغلب الأمر أنك لم تقم بتعريف الكويري الخاص بعملية التعديل أو أنك قمت بتعريفها بطريقة خاطئة -انظر ملاحظاتي السابقة في الأعلى. قم بفحص قائمة الخاصيات لل DataSource و انظر في الخاصية UpdateQuery, للتمكن من تحقيق عملية تعديل ناجحة هناك شرطان :

1-تعريف صحيح للقائمة Table في قاعدة البيانات. يجب أن يكون هناك مفتاح معرف فورن كي Foreign Key. لأن ال DataSource و ال FormView يقوم باستخدام هذا المفتاح في التواصل مع قاعدة البيانات.

2-تعريف لعملية إدخال من خلال تعريف الكويري الخاصة بالإدخال كما سبق و ذكرنا.

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

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