السلام عليكم الأعضاء الكرام
أرجو المساعدة في توصيف المشكلة عند إستخدام الكود ادناه لحصر عدد الإتصال على قاعدة البيانات يظهر عدد كبير جداً ويزداد بالرغم من أن هذه المشكلة تبدأ عند فتح الموقع من قبل اثنين فقط أو ثلاثة أشخاص بيوصل عدد الكونيكشن مرات لل 800 كونيكشن ، الكود موضح أدناه
الكود المستخدم في السيكوال سيرفر
SELECT
DB_NAME(dbid) as DBName,
COUNT(dbid) as NumberOfConnections,
loginame as LoginName
FROM
sys.sysprocesses
WHERE
dbid > 0
GROUP BY
dbid, loginameالكود المستخدم في الكلاس لفتح الإتصال وغلقه ومثال على إستخدام فنكشن
public class DBClass
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
string sqlComm = "";
SqlDataReader newRdr;
SqlCommand newComm = new SqlCommand();
public _DBClass()
{
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
}
public void Closeconn()
{
conn.Close();
}
}مثال على الفنكشن
public int Add_News(News newNews)
{
try
{
sqlComm = "insert into Table_News(Title_AR, Summary_AR, Details_AR, Title_EN, Summary_EN, Details_EN, Thumb_URL, Statues) values(@Title_AR, @Summary_AR, @Details_AR, @Title_EN, @Summary_EN, @Details_EN, @Thumb_URL, @Statues)";
newComm = new SqlCommand(sqlComm, conn);
newComm.Parameters.Add("@Title_AR", SqlDbType.NVarChar).Value = newNews.Title_AR;
newComm.Parameters.Add("@Summary_AR", SqlDbType.NVarChar).Value = newNews.Summary_AR;
newComm.Parameters.Add("@Details_AR", SqlDbType.NVarChar).Value = newNews.Details_AR;
newComm.Parameters.Add("@Title_EN", SqlDbType.NVarChar).Value = newNews.Title_EN;
newComm.Parameters.Add("@Summary_EN", SqlDbType.NVarChar).Value = newNews.Summary_EN;
newComm.Parameters.Add("@Details_EN", SqlDbType.NVarChar).Value = newNews.Details_EN;
newComm.Parameters.Add("@Thumb_URL", SqlDbType.NVarChar).Value = newNews.Thumb_URL;
newComm.Parameters.Add("@Statues", SqlDbType.Int).Value = newNews.Statues;
newComm.ExecuteNonQuery();
newComm.Dispose();
sqlComm = "select News_ID from Table_News ORDER BY News_ID DESC";
newComm = new SqlCommand(sqlComm, conn);
newRdr = newComm.ExecuteReader();
if (newRdr.Read())
newNews.News_ID = (int)newRdr[0];
newComm.Dispose();
newRdr.Close();
return newNews.News_ID;
}
catch (Exception)
{ throw; }
}