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

متى أفتح وأغلق الكونكشن

بدأه She في 9 يوليو 2012 · 4 رد · 572 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أخوتي الكرام

أرجو منكم فضلا مساعدتي في معرفة الطريقة المثلي لفتح وأغلاق الكنكشن بالداتابيس

حيث ان لكي العديد من الكوماند التي تشترك بنفس الكونكشن

كما أنها تحوي ريدر

وتواجهني أخطأ

فمتى أعمل كنكشن جديد

ومتى أستخدم نفس الكونكشن للعديد من commands

ومتى أغلق الكونكشن وأفتحه

ومتى أغلق الريدر , الكوماند

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

لكم الشكر الجزيل على تعاونكم

اللهم ما اصبح /امسى بي من نعمة أو بأحد من خلقك فمنك وحدك لا شريك لك فلك الحمد ولك الشكر

#2

السلام عليكم

افضل شيء في هذا الموضوع هو استخدام using مثال :

using (SqlConnection conn = new SqlConnection("YourConnectionString"))
{
using (SqlCommand cmd = new SqlCommand("YourCommandString", conn))
{
conn.Open();
cmd.ExecuteNonQuery();
}
}

ولاستخدام اكثر من Reader او لتجاوز الاخطاء في هذا المجال نضع في connectionString الخاصية : MultipleActiveResultSets=True

Data Source=.;Initial Catalog=db;Integrated Security=True;MultipleActiveResultSets=True;.......
1
#3

شكرًا جزيلا لك

لدي سؤال فضلا

ما الحكمة من استخدام اليوزنق؟

أنا لدي في الصفحة الواحدة ما يزيد عن 25 كويوي وكلها تعود لنفس الكونكشن

في البداية كنت اعمل كنكشن جديد تقريبا لكل كوماند واعمله فتح وإغلاق

ولكن هذا خطأ اعتقد

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

بعدها عملت فتح للكنكشن واغلقه مع كل كماند

لكن لا زلت غير مقتنعة بما اعمل

والموقع بطيء

فهل عملي صحيح ؟

 لكم شكري وتقديري

اللهم ما اصبح /امسى بي من نعمة أو بأحد من خلقك فمنك وحدك لا شريك لك فلك الحمد ولك الشكر

#4

السلام عليكم

الاتصال بقاعدة البيانات مكلف لان انشائه يحتاج الي تخصيص موارد و حجز قناة مع قاعدة البيانات و لذلك هناك خطوتين لتحسين الاداء:

1- اعدادات الاتصال:

يمكنك تعديل اعدادات الاتصال لتحسين الاداء عن طريق تفعيلConnection Pooling و تعني بدلا من انشاء اتصال جديد بقاعدة البيانات ثم غلقها ثم انشاء اخري من جديد فانه عند غلقك للاتصال فانه يبقي موجود في انتظار انشاء اتصال اخر لكي يتم استخدامه

و ايضا كما تفضل الاخ TareqVB في حالة وجود اكثر من استعلام تريد تنفيذهم في نفس الوقت يمكنك اضافتهم جمعيا لنفس الامر و تعديل اعدادت الاتصال لتفعيلMultipleActiveResultSets

2- عند استخدامك لل Connection فيفضل ان تفتح الاتصال قبل تنفيذ الامر مباشرة و غلقها بعد الانتهاء مباشرة و لضمان غلق الاتصال استخدم Usingكما سبق في الرد السابق فعند استخدمها مع اي Object فهي تقوم بعمل Dispose له بمجرد انتهاء جملة Using و يمكنك ايضا استخدام Connection.Close و يفضل وضعها داخل Finally

اقترح ان تستخدمEntity Framework ان كانت ظروف مشروعك تسمح بذلك

1
#5

اشكرك جزيل الشكر

على المعلومات القيمة

سوف ابحث عن الطريقة لعملها

شكرًا للجميع

اللهم ما اصبح /امسى بي من نعمة أو بأحد من خلقك فمنك وحدك لا شريك لك فلك الحمد ولك الشكر

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

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

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

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

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