يتكون في صفحتي من مكرر وربط بعض البيانات باستخدام إجراء المتجر من SQL Server 2008.
rptTour.DataSource = GetData();
rptTour.DataBind();
ربط البيانات getData ()
SqlCommand cmdSelectAllMatch = new SqlCommand("sp_sel_Tour", Global.conn);
SqlDataReader dtrSelectAllMatch = null;
Collection<TourBO> TourData = new Collection<TourBO>();
try
{
Global.connD2W.Open(); //error here, line 23
cmdSelectAllMatch.CommandType = System.Data.CommandType.StoredProcedure;
dtrSelectAllMatch = cmdSelectAllMatch.ExecuteReader();
while (dtrSelectAllMatch.Read())
{
TourBO Tour = new TourBO();
TourID = Convert.ToInt16(dtrSelectAllMatch[dtrSelectAllMatch.GetOrdinal("ID")]);
Tour.Name = dtrSelectAllMatch[dtrSelectAllMatch.GetOrdinal("Name")].ToString();
TourData.Add(Tour);
}
}
catch(Exception ex)
{
Global.Log(ex.ToString());
}
finally
{
Global.connD2W.Close();
}
if (dtrSelectAllMatch != null)
{
dtrSelectAllMatch.Close();
}
return TourData;
هذا هو SQLConnection الذي سيتم مشاركته بين التطبيق بأكمله.
public static SqlConnection connD2W = new SqlConnection(ConfigurationManager.ConnectionStrings["D2WConnectionString"].ConnectionString);
لقد قرأت فقط جميع البيانات من قارئ البيانات وتعيينها في مجموعة مخصصة والعودة إلى المكرر.
كل شيء يعمل بشكل جيد عندما أختبر بنفسي. ولكن عندما أقوم بتشغيل الاختبار المفقود باستخدام Visual Studio (20 مستخدمًا وأركض لمدة دقيقتين) ، تلقيت أخطاء أدناه في ملف سجل الخطأ الخاص بي (نفس الخطأ استمر في التكرار)
Log Entry : 9:59:05 AM Thursday, November 07, 2013
:System.InvalidOperationException: The connection was not closed. The connection's current state is connecting.
at System.Data.ProviderBase.DbConnectionBusy.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
at TourDAL.GetAllScheduledMatch() in c:\Documents\Visual Studio 2010\WebSites\test\App_Code\DAL\TourDAL.cs:line 23
هل هذا يعني أن هذه الوظيفة لا تسمح للعديد من المستخدمين بالوصول إليها في نفس الوقت؟ بأي حال من الأحوال أن يحل هذا؟