تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
لا يتم التحديث بيانات الداتا جريد إالا بعد مناداه الدالة مرتان و 3 مرات
#1
السلام عليم

أواجة مشكلة غريبة بعد العودة للعمل في قواعد access
عندما اقوم بمناداة دالة جلب البيانات من قاعدة البيانات عند الاضافة او الحذف لتحديث البيانات
الدالة تعمل بشكل جيد عند تشغيل الفورم لكن عند مناداتها خلال التشغيل من خلال button لا يتم التحديث إالا بعد مناداه الدالة مرتان و 3 مرات

لا اعلم السبب لحدوث هذا 

هذا الكود لو تكرمتم :


الملفات المرفقة
.rar   test.rar (الحجم : 84.68 ك ب / التحميلات : 20)

الرد }}}
تم الشكر بواسطة: سعود
#2
وعليكم السلام ورحمة الله وبركاته
يبدو ان المشكلة لديك فى هذا الجزء من جود الحذف
SelectedRows[0]
لماذا تحدد السطر 0 (الاول) دائماً وانت من الممكن ان تكون محدد السطر اخر عند الحذف
الرد }}}
#3
(04-11-20, 06:10 AM)kiki كتب : وعليكم السلام ورحمة الله وبركاته
يبدو ان المشكلة لديك فى هذا الجزء من جود الحذف
SelectedRows[0]
لماذا تحدد السطر 0 (الاول) دائماً وانت من الممكن ان تكون محدد السطر اخر عند الحذف

مرحبا صديقي، مشكلتي ليست بالحذف، الاكواد جميعها تعمل جيدا لكن دالة تحديث البيانات فب الجريد فيو لا تعمل إلا عند مناداتها عدة مرات، هذه هي مشكلتي.

بالنسبة لـ SelectedRows[0]  تعني السطر المحدد من قبل المستخدم لا تعني السطر الاول. فهي ترجع قيمة الخليه 0 في السطر المحدد حتى لو كان السطر رقم 100

الرد }}}
تم الشكر بواسطة: سعود
#4
بعد تجربة كبيرة من الامس في البداية شككت في الداتا جريد فيو

ولكن بالنهاية اكتشفت انها بريئة وان السبب في قاعدة البيانات ، لسبب ما لا اعلمه يتم تنفيذ الامر ببطء شديد جدا

لذلك عند اضافة عنصر جديد مثلا ، نحن نتوقع ان العنصر تم اضافته فعلا لقاعدة البيانات ، ثم نقوم بطلب الجدول كاملا ولكن التغيرات لا تكون قد حدثت فعلا فيعود بالجدول في الحالة القديمة

لا علاقة لعدد المرات في الموضوع ، لو وضعت زرا يقوم بتحديث الجريد فيو ستكتشف انه يجب الانتظار لبعض الوقت قبل ان تكون التغيرات فعالة

هذه ان صحت طبعا احد كوارث الاكسس
الرد }}}
تم الشكر بواسطة: Rabeea Qbaha , سعود
#5
(04-11-20, 03:45 PM)Anas Mahmoud كتب : بعد تجربة كبيرة من الامس في البداية شككت في الداتا جريد فيو

ولكن بالنهاية اكتشفت انها بريئة وان السبب في قاعدة البيانات ، لسبب ما لا اعلمه يتم تنفيذ الامر ببطء شديد جدا

لذلك عند اضافة عنصر جديد مثلا ، نحن نتوقع ان العنصر تم اضافته فعلا لقاعدة البيانات ، ثم نقوم بطلب الجدول كاملا ولكن التغيرات لا تكون قد حدثت فعلا فيعود بالجدول في الحالة القديمة

لا علاقة لعدد المرات في الموضوع ، لو وضعت زرا يقوم بتحديث الجريد فيو ستكتشف انه يجب الانتظار لبعض الوقت قبل ان تكون التغيرات فعالة

هذه ان صحت طبعا احد كوارث الاكسس

شكرا لك صديقي انس، لقد اصابني الجنون من الموضوع و لم اترك طريقه لحل الموضوع، لكن لم اتوقع ان تكون الاعاقة من قاعدة البيانات.
سوف اقوم بتجربة اصدار اقدم او قواعد بيانات اخرى.
شكرا لك

الرد }}}
تم الشكر بواسطة: Anas Mahmoud , سعود
#6
اخي الكريم اتضح انني تسرعت بعض الشيء في الحكم على الامور ، الخطأ فعلا في بطأ الاستجابة للتغيرات ولكن ليست هذه غلطة قاعدة البيانات

الخطأ في الاسلوب نفسه المعتمد على ابقاء الاتصال مفتوحا طوال الوقت ، ما يحدث هو انه كان ينتظر اول Time Out لكي يغلق الاتصال تلقائيا ومن ثم نحصل على البيانات المحدثة
الاسلوب الذي احبه هو اسلوب Using داخل Using بهذا الشكل نضمن ان الاتصال لن يدوم بعد اجراء العملية المطلوبة وتحل المشكلة

كود :
           using (OleDbConnection connection = new OleDbConnection(ConnectionString))
           using (OleDbCommand command = new OleDbCommand("Insert into Customers (category,cname, cphone1,cphone2,cemail, caddress, cnote) VALUES (@category,@cname, @cphone1,@cphone2,@cemail, @caddress, @cnote)", connection))
           {

               command.Parameters.AddWithValue("@category", category_txt.Text.Trim());
               command.Parameters.AddWithValue("@cname", txt_name.Text.Trim());
               command.Parameters.AddWithValue("@cphone1", txt_phone.Text.Trim());
               command.Parameters.AddWithValue("@cphone2", txt_phone2.Text.Trim());
               command.Parameters.AddWithValue("@cemail", txt_email.Text.Trim());
               command.Parameters.AddWithValue("@caddress", Location_txt.Text.Trim());
               command.Parameters.AddWithValue("@cnote", Note_txt.Text.Trim());
               connection.Open();
                               command.ExecuteNonQuery();
               connection.Close();
           }

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

عدلت مثالك ليعمل كما المطلوب ، عدلت في ملف DB_connection.cs الاسلوب ليعتمد على الاتصالت المفتوحة لحظيا فقط وحذفت الاتصال العام وكذلك عدلت باقى الملفات على السريع لتماشي هذا الاسلوب ومشت الامور كما ينبغي ، اعتقد انك ستقوم بتغير الاسلوب المتبع باذن الله
تحياتي


الملفات المرفقة
.zip   test.zip (الحجم : 95.41 ك ب / التحميلات : 16)
الرد }}}
تم الشكر بواسطة: سعود , Rabeea Qbaha
#7
انا اعمل بهذه الطريقة من فتره لكن مع قواعد بيانات sql server ولا اواجة مشاكل بتاتا، مع العلم اني متعمد جعل الاتصال مفتوحا لتسريع العمل و اختصار الجمل الشرطيه لتفقد الاتصال و فتحه واغلاقة. و اقوم باغلاق الاتصال عند الخروج من البرنامج.

شكرا لك صديقي انس ساتفقد طريقتك و اقوم بتطوير طريقتي.

الرد }}}
تم الشكر بواسطة: سعود , Anas Mahmoud


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  هل الكود هذا صحيح خاص بالربط مع قاعدة بيانات SQL server تركي احمد 0 214 15-02-24, 10:04 AM
آخر رد: تركي احمد
  [تم الحل] مشكلة الاتصال بقاعده بيانات SQL على الشبكة maxruined 5 4,255 08-11-23, 01:00 AM
آخر رد: الحزين اليماني
  جلب جميع المعرفات من الداتا قريد anes 2 570 26-06-23, 07:54 PM
آخر رد: anes
  تعبئة الداتا قريد من مصفوفة bidaya 5 896 22-06-23, 09:23 PM
آخر رد: bidaya
  [سؤال] مشكلة في جملة التحديث سطور الحياة 4 827 02-06-23, 01:02 PM
آخر رد: سطور الحياة
  [سؤال] السلام عليكم بدون زحمة عندي نظام ارشفة مشتغلة بلغة سي شارب وقاعدة بيانات سكوال سيرفر مرتضى 1 675 13-05-23, 10:36 PM
آخر رد: عبدالله الدوسري
  [C#.NET] لماذا لا يتم عرض بيانات ahmed_king2023 0 548 22-04-23, 09:09 PM
آخر رد: ahmed_king2023
  [C#.NET] خصائص الداتا جرد فيو h2551996 0 557 07-04-23, 05:01 PM
آخر رد: h2551996
  [C#.NET] عرض بيانات قريد فيو في تكست بوكس ahmed_king2023 1 600 27-03-23, 04:54 PM
آخر رد: sanyor77
  [سؤال] تجزئة النص من الداتا جريد فيوا احمد المهلا 2 743 27-12-22, 05:08 PM
آخر رد: احمد المهلا

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم