я обнаружил, что иногда я получаю тайм-аут, очень медленное начальное соединение и т. Д. При подключении к mysql-db.
По словам моего веб-хостинга, я не закрываю свои соединения. Но я думаю, что не могу найти ошибку. Помогите, пожалуйста, подтвердить соответствие моего кода или исправление кода.
Код ниже вы можете найти для одного SelectCommand и одного ExecuteNonQuery.
List<MySqlParameter> param = new List<MySqlParameter>();
string strConnectionString = "server=mysqlXXX.loopia.se;uid=XXX;pwd=XXX;database=XXX;convert zero datetime=True";
private void ExecuteNonQuery(string strSQL, List<MySqlParameter> parameters)
{
using (MySqlConnection connection = new MySqlConnection(strConnectionString))
{
connection.Open();
using (MySqlCommand command = new MySqlCommand(strSQL, connection))
{
foreach (MySqlParameter param in parameters)
command.Parameters.AddWithValue(param.ParameterName, param.Value);
command.ExecuteNonQuery();
}
}
}
private DataSet getData(string query, List<MySqlParameter> parameters)
{
using (MySqlConnection connection = new MySqlConnection(strConnectionString))
{
MySqlDataAdapter da = new MySqlDataAdapter();
DataSet ds = new DataSet();
connection.Open();
using (MySqlCommand command = new MySqlCommand(query, connection))
{
foreach (MySqlParameter param in parameters)
command.Parameters.AddWithValue(param.ParameterName, param.Value);
da.SelectCommand = command;
}
da.Fill(ds);
return ds;
}
}
public DataSet GetSCustomers()
{
var sql = $"SELECT * FROM Customer ";
param.Clear();
return getData(sql, param);
}
public void UpdateCustomerPinCode(string customerId, int pin)
{
var sql = $"UPDATE Customer SET pin = @pin WHERE customerId = @customerId;
param.Clear();
param.Add(new MySqlParameter("@customerId", customerId));
param.Add(new MySqlParameter("@pin", pin));
ExecuteNonQuery(sql, param);
}