Подключение позволяет только один открытый читатель.
Вы можете избавиться от проблемы с двумя устройствами чтения данных, выполнив только один запрос на «удаление».
Если токен найден, запрос удалит его, если нет, запрос ничего не сделает.
using (var connection = new MySqlConnection("connection-string"))
using (var command = connection.CreateCommand())
{
command.CommandText = "DELETE FROM tokens WHERE token = @token";
var token = new MySqlParameter
{
ParameterName = "@token",
MySqlDbType = MySqlDbType.Int32,
Value = int.Parse(passbox.Text)
};
command.Parameters.Add(token);
connection.Open();
command.ExecuteNonQuery();
}
Не пытайтесь «сохранить» соединение, просто избавьтесь от предыдущего и создавайте новое каждый раз, когда вам нужно. ADO. NET в фоновом режиме эффективно повторно использует уже открытые фактические соединения.
Используйте параметры sql для передачи значений в запрос. Параметры Sql защищают от внедрения sql и улучшают производительность запросов sql, повторно используя предварительно скомпилированные планы запросов.