PDA

View Full Version : قطع ارتباط با mysql در حین کار



mosi20
چهارشنبه 21 مرداد 1394, 09:44 صبح
سلام
یک برنامه ای نوشتم که به صورت مداوم داره کار میکنه مثلا ۱۰ روز پشت سر هم روشنه و داره کار میکنه
در روز چند بار اتصالش با mysql قطغ میشه و مجددا هر چقدر تلاش میکنه وصل نمیشه
اما به محض اینکه برنامه را خروج بدم و دوباره بازش کنم اتصال برقرار میشه
این قسمت کد اتصال به mysql من هست
میتونید راهنمایی کنید چیکار کنم این وصل بمونه؟
در هر بار که کوئری میزنم تابع OpenConnection() را قبلش صدا میزنم

public MysqlDatabase(string server, string port, string userID , string password, string database )
{
dbConnection = String.Format("server={0};Port={1};userid={2}; password='{3}';database={4};CharSet=utf8;Convert Zero Datetime=True;command timeout=360000;Connect Timeout=360000;", server , port, userID , password, database);
connect();
}
private bool connect()
{

if(cnn != null) {
if (cnn.State.Equals(ConnectionState.Open))
{
cnn.Close();
cnn.Dispose();
}

}

try
{
cnn = new MySqlConnection(dbConnection);
cnn.Open();
return true;
}
catch (MySqlException )
{
return false;
}
}
public bool OpenConnection()
{
// raya_tg.class_function.change_balloon("mysql", "OpenConnection", 200);

if (!cnn.Ping())
{
try
{
cnn.Open();
reconnect_try = 0;
return true;
}
catch (MySqlException ex)
{

if(reconnect_try < 15)
{
raya_tg.class_function.change_balloon("سرور", " در حال برقراری ارتباط با سرور" + reconnect_try, 500);

System.Threading.Thread.Sleep(500);
reconnect_try++;
connect();
return OpenConnection();

}
else {

MessageBox.Show(ex.Message);
return false;
}

}
}
else
{
reconnect_try = 0;
return true;
}


}

mosi20
شنبه 31 مرداد 1394, 10:14 صبح
کسی نمیتونه راهنمایی کنه؟