اخي الكريم اتضح انني تسرعت بعض الشيء في الحكم على الامور ، الخطأ فعلا في بطأ الاستجابة للتغيرات ولكن ليست هذه غلطة قاعدة البيانات
الخطأ في الاسلوب نفسه المعتمد على ابقاء الاتصال مفتوحا طوال الوقت ، ما يحدث هو انه كان ينتظر اول 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 الاسلوب ليعتمد على الاتصالت المفتوحة لحظيا فقط وحذفت الاتصال العام وكذلك عدلت باقى الملفات على السريع لتماشي هذا الاسلوب ومشت الامور كما ينبغي ، اعتقد انك ستقوم بتغير الاسلوب المتبع باذن الله
تحياتي