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

كيف اتخلص من هذه الرسالة The connection was not closed

بدأه حامد محمد الوصيف في 1 أغسطس 2014 · 10 رد · 572 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

 

فى اغلب الاوقات تظهر لى هذه الرسالة عند الضغط على زر 

The connection was not closed. The connection's current state is open.

الاتصال مفتوح او مغلق

 

متى افتح الاتصال ومتى اغلقه

 

فكيف اتجنب هذه الرسالة عند كتابة الكود

 

المشكلة انها مبتظهرشى لى عند كتابة كود فى زر معين وانما تظهر لى عند عمل زر اخر والضغط علية

 

وامور كتير من هذا الشكل

 

مرفق صورة للخطأ

post-133160-0-48986500-1406904745_thumb.

تم تعديل هذه المشاركة بواسطة حامد محمد الوصيف في 1 أغسطس 2014 في 17:52

13598125002.gif

038c8ecfa8.gif

#2

...

تم تعديل هذه المشاركة بواسطة Dev-aBaDy في 1 أغسطس 2014 في 18:00

#3
عن طريق هذة الكود يمكنك حل هذة المشكلة
 
 
            if(Mc.State.ToString() == "Open")
            {

            }

  else{mc.Open}

 

 

 

mc  اسم الكائن

تم تعديل هذه المشاركة بواسطة Dev-aBaDy في 1 أغسطس 2014 في 18:10

#4

الرسالة تفيد بأن قاعدة البيانات مفتوحة بالفعل

استبدل كود الخطأ هذا :

sqlConnection.Open();

بـ بجملة IF بهذا الكود :

if (sqlConnection.State != ConnectionState.Open)
                {
                    sqlConnection.Open();
                }
                cmd.Dispose();
                da.Dispose();
                Dt.Dispose();

تم تعديل هذه المشاركة بواسطة #A-H.c في 1 أغسطس 2014 في 18:07

#5
#A-H.c كتب:

 

الرسالة تفيد بأن قاعدة البيانات مفتوحة بالفعل

استبدل كود الخطأ هذا :

sqlConnection.Open();

بـ بجملة IF بهذا الكود :

if (sqlConnection.State != ConnectionState.Open)
                {
                    sqlConnection.Open();
                }
                cmd.Dispose();
                da.Dispose();
                Dt.Dispose();

 

 

 

 

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

 

 

دمت بخير

#6
Dev-aBaDy كتب:

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

 

 

دمت بخير

 

استاذنا الفاضل Dev-aBaDy  هذا هو زر الاتصال Button2_click_1 كما في الصورة لاول مشاركة تقريباُ

#7
#A-H.c كتب:

استاذنا الفاضل Dev-aBaDy  هذا هو زر الاتصال Button2_click_1 كما في الصورة لاول مشاركة تقريباُ

 

 

مانتبهت ^^ ـتمنا لك كل خير

#8

السلام عليكم ورحمة الله وبركاته

كما ذكر الأخوة الكرام أن الرسالة تفيد أن الاتصال مفتوح

المشكلة أنك تقوم بتعريف الاتصال SqlConnection على مستوى النافذة وهذا بالتأكيد يسبب بطئ البرنامج بل ويتسبب أيضاً فى سقوط سيرفر قواعد البيانات نظراً لاستمرار الاتصال

والأفضل أنك تعرفه داخل حدث النقر

وهناك شئ هام جداً جداً وهو أن تقوم بإعلاق الاتصال بعد الانتهاء من تنفيذ الأوامر الخاصة بك

أدعو الله أن يجعل أعمالنا خالصة لوجهه الكريم --- وأن ينفعنا بما علمنا

Dr Sayed Tohamy

Programming Instructor

مدرب برمجة

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

EmaSoft2000

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

#9
ema2000_t كتب:

السلام عليكم ورحمة الله وبركاته

كما ذكر الأخوة الكرام أن الرسالة تفيد أن الاتصال مفتوح

المشكلة أنك تقوم بتعريف الاتصال SqlConnection على مستوى النافذة وهذا بالتأكيد يسبب بطئ البرنامج بل ويتسبب أيضاً فى سقوط سيرفر قواعد البيانات نظراً لاستمرار الاتصال

والأفضل أنك تعرفه داخل حدث النقر

وهناك شئ هام جداً جداً وهو أن تقوم بإعلاق الاتصال بعد الانتهاء من تنفيذ الأوامر الخاصة بك

 

كلام جميل :thumb_up:

طيب ينفع نقوم بتعريف نصفه عى مستوى النافذة مثلا

 SqlConnection cn = new SqlConnection(@"server=.;database=My_DB;integrated security=true");
        SqlCommand cmd;
        SqlDataAdapter da;
        DataTable Dt;

وفي الكونترول نكمل النصف الثاني

da = new SqlDataAdapter("any thing ", cn);
            Dt = new DataTable();
            da.Fill(Dt);

هل هذا ايضا يعمل بطء في البرنامج ؟

تم تعديل هذه المشاركة بواسطة #A-H.c في 1 أغسطس 2014 في 18:56

#10
#A-H.c كتب:

كلام جميل :thumb_up:

طيب ينفع نقوم بتعريف نصفه عى مستوى النافذة مثلا

 SqlConnection cn = new SqlConnection(@"server=.;database=My_DB;integrated security=true");
        SqlCommand cmd;
        SqlDataAdapter da;
        DataTable Dt;

وفي الكونترول نكمل النصف الثاني

da = new SqlDataAdapter("any thing ", cn);
            Dt = new DataTable();
            da.Fill(Dt);

هل هذا ايضا يعمل بطء في البرنامج ؟

هذا ما يتسبب فى بطء التعامل مع قواعد البيانات لأنك قمت بكل التعريفات على مستوى النافذة، أما الاستكمالات التى تمت بعد ذلك فهى مجرد تجهيز للمتغيرات المعرفة على مستوى النافذة، والمشكلة فى ذلك أن هذه المتغيرات تظل فى الذاكرة طالما النافذة مفتوحة، أما لو تم تعريفها داخل الحدث فيتم إزالتها من الذاكرة بعد تنفيذ الحدث مباشرة

أدعو الله أن يجعل أعمالنا خالصة لوجهه الكريم --- وأن ينفعنا بما علمنا

Dr Sayed Tohamy

Programming Instructor

مدرب برمجة

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

EmaSoft2000

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

#11

شكراُ د سيد تُهامي على المعلومات القيمة

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…