PDA

View Full Version : بسته نشدن كانكشن ها و پولينگ!



* joodi *
یک شنبه 19 شهریور 1391, 13:24 عصر
سلام
من كانكشنم رو در يك كلاس static تعريف كردم و هر بار كه نياز دارم به بانك وصل بشم از اين كلاس استفاده ميكنم و كانكشن رو باز و در نهايت ميبندم اما اتفاقي كه ميفته وقتي عبارت sp_who2 رو در بانك ميزنم به ازاي هر سلكت يا درج يا بروز رساني در بانك كانكشن جديد ايجاد ميشه تا جاييكه اين مقدار بالا ميره و گاهي به 130 ميرسه! و pooling رخ ميده :((

ايراد از كجاست؟ ممنون ميشم راهنمايي كنيد خيلي فوريست

اين كلاس كانكشن :



public static string ConnectionString
{
get
{
return ConfigurationSettings.AppSettings["ConStr"];
//return System.Configuration.ConfigurationManager.Connecti onStrings["ConStr"].ConnectionString;
//return "data source=.; initial catalog=MIS_!;User ID=sa;Password=as";
//return "Data Source=192.168.100.3;Initial Catalog=MIS_1;Persist Security Info=True;User ID=sa;password=ostandari321";
}
}


اين هم دستورات اينزرت كه از همون كلاس بالا استفاده كرده :



public int insert(AzaJalasat aza , DataTable temp)
{
//string strconnection = ConfigurationSettings.AppSettings["ConStr"];
SqlConnection conpub = new SqlConnection(DALBase.ConnectionString);
SqlCommand command = new SqlCommand("Update_Tbl_AzaJalasat_Final", conpub);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@Task", 1);
command.Parameters.AddWithValue("@Srl_Company", aza._Srl_Company);
command.Parameters.AddWithValue("@Srl_JalasatName",aza._Srl_JalasatName);
command.Parameters.AddWithValue("@Srl_Monaghese", aza._Srl_Monaghese);
command.Parameters.AddWithValue("@IdUser", aza._IdUser);

SqlParameter param1 = new SqlParameter("@TempTable", SqlDbType.Structured);
param1.Value = temp;
command.Parameters.Add(param1);


command.Parameters.Add("@Message", SqlDbType.Int).Direction = ParameterDirection.Output;
command.Connection.Open();
try
{
command.ExecuteNonQuery();
return int.Parse(command.Parameters["@Message"].Value.ToString());
}
catch
{
return 1;
}
finally
{
command.Connection.Close();
}
}




و اين دستور سلكت :



public SqlDataReader Get_DropSavedMember(AzaJalasat aza)
{
//string strconnection = ConfigurationSettings.AppSettings["ConStr"];
SqlConnection conpub = new SqlConnection(DALBase.ConnectionString);

SqlCommand command = new SqlCommand("Update_Tbl_AzaJalasat", conpub);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@task", 4);
command.Parameters.AddWithValue("@Srl_AzaJalasat", "");
command.Parameters.AddWithValue("@Srl_JalasatName", aza._Srl_JalasatName );
command.Parameters.AddWithValue("@Srl_Company",aza._Srl_Company);
command.Parameters.AddWithValue("@Srl_Monaghese", aza._Srl_Monaghese);
command.Parameters.AddWithValue("@IdUser", aza._IdUser);

command.Parameters.Add("@Message", SqlDbType.Int).Direction = ParameterDirection.Output;
bool mustCloseConnection = false;
try
{

if (conpub.State != ConnectionState.Open)
{
mustCloseConnection = true;
conpub.Open();
}
else
{
mustCloseConnection = false;
}

SqlDataReader dataReader;


dataReader = command.ExecuteReader(CommandBehavior.CloseConnect ion);

return dataReader;
}
catch
{
if (mustCloseConnection)
conpub.Close();
throw;
}
}