Le problème que j'ai est que je pourrais SUPPRIMER mais quand j'appuie sur rafraîchir et envoie les données de poste il essayera de supprimer encore. Ce qui n'est pas un problème mais maintenant la deuxième déclaration est un problème car elle diminue quand il ne devrait pas.Comment puis-je échouer lorsque DELETE ne supprime pas?
Qu'est-ce qu'un moyen de diminuer simultanément mais uniquement si la suppression a supprimé une entrée? Notez MSGID est un PK donc je vais supprimer soit 0 ou 1
public void removeMediaMsg(long userId, long msgId)
{
using (var dbTrans = connection.BeginTransaction())
{
command.CommandText = "DELETE FROM user_media_subscription "
+ "WHERE [email protected] AND [email protected];";
command.Parameters.Add("@msgId", DbType.Int64).Value = msgId;
command.Parameters.Add("@recipientId", DbType.Int64).Value = userId;
command.ExecuteNonQuery();
command.CommandText = "UPDATE user_data SET mediaMsgCount=mediaMsgCount-1 WHERE [email protected];";
command.Parameters.Add("@userId", DbType.Int64).Value = userId;
command.ExecuteNonQuery();
dbTrans.Commit();
}
}
Il est préférable de simplement vérifier le nombre de lignes affectées. L'utilisation d'une sélection supplémentaire est redondante et lente. – configurator