Comment savoir si une instruction sql Update a été exécutée avec succès ou a échoué? J'utilise sql server 2005 et C# asp.net. Puis-je obtenir l'infomation réussie ou échouée en C# sans ajouter de code SQL dans l'ancienne instruction SQL?Comment savoir si une instruction sql Update a été exécutée avec succès ou a échoué?
Répondre
Vous pouvez utiliser la valeur de retour de ExecuteNonQuery pour vérifier si la mise à jour a réussi ou non.
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand("sp_updateData", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter p1 = new SqlParameter("@id", SqlDbType.Int);
p1.Value = 1;
p1.Direction = ParameterDirection.Input;
SqlParameter p2 = new SqlParameter("@name", SqlDbType.VarChar,50);
p2.Value = "sls";
p2.Direction = ParameterDirection.Input;
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
try
{
con.Open();
//count will be the number of rows updated. will be zero if no rows updated.
int count = cmd.ExecuteNonQuery();
if (count > 0)
{
Console.WriteLine("Update Success!!!");
}
else
{
Console.WriteLine("No Updates!!!");
}
Console.ReadLine();
}
catch (SqlException ex)
{
Console.WriteLine("Update Failed coz.. " + ex.Message);
}
finally
{
con.Close();
}
Utilisation d'un bloc TRY/CATCH et peut-être RAISERROR pour envoyer un message.
Vous pouvez utiliser @@ROWCOUNT pour obtenir le nombre de lignes affectées par la dernière requête. Cela peut être utilisé pour décider si votre clause WHERE
correspond réellement à quelque chose, par exemple.
UPDATE mytable SET
field = 'SomeValue'
WHERE
id = 1234
IF @@ROWCOUNT = 0
BEGIN
-- No row with id=1234
END
Que signifie 'échoué'?
Si vous avez échoué, cela signifie qu'une erreur a été générée - SQL Syntaxe, contrainte - ou violation FK - puis TRY/CATCH, RAISEERROR, etc. sont des options. Ou, si vous avez échoué, vous voulez dire qu'aucune ligne n'a été mise à jour, la valeur de retour de ExecuteNonQuery vous donnera un nombre de lignes si vous ne supprimez pas rowcount dans votre procédure stockée.
- 1. Comment puis-je savoir quand .Net System.Diagnostics.Process a été exécuté avec succès ou a échoué?
- 2. VCRedist - comment puis-je savoir si elle a été exécutée?
- 3. Inside Interceptor.intercept(), comment savoir si l'action a déjà été exécutée?
- 4. Comment savoir si une classe a été instanciée
- 5. Comment savoir si une variable dans ASP a été déclarée
- 6. Comment savoir si une vue a été déplacée?
- 7. Comment arrêter une macro si elle a déjà été exécutée ou s'il y a une valeur dans une cellule particulière
- 8. Comment savoir si la collection itérée a été modifiée?
- 9. Comment savoir pourquoi renameTo() a échoué?
- 10. Comment savoir quel compilateur a été utilisé: g77 ou gfortran
- 11. Pour savoir si une page * .aspx a été modifiée
- 12. Comment savoir quel contrat a échoué avec contract.py de Python?
- 13. Comment savoir ce qui a été cliqué?
- 14. Comment savoir si un formulaire a été modifié
- 15. Comment savoir si un dossier a été définitivement supprimé
- 16. Comment savoir si une entité JPA détachée a déjà été conservée ou non?
- 17. Comment savoir si un assembly .NET a été compilé avec l'indicateur TRACE ou DEBUG
- 18. Comment vérifier si PDF a été ouvert avec succès dans le navigateur en utilisant WatiN?
- 19. Comment savoir si une application .NET a été compilée en mode DEBUG ou RELEASE?
- 20. Déterminez si une connexion a été rompue
- 21. Déterminer quelle ligne une fonction a été exécutée à partir
- 22. Comment savoir quelle MKPinAnnotation a été pressée?
- 23. Comment savoir quel itinéraire a été sélectionné?
- 24. Comment tester si un mail a été envoyé avec succès en utilisant ActionMailer?
- 25. Comment savoir onglet tabulation a été pressé?
- 26. Comment savoir quelle image a été cliquée?
- 27. Simple comme l'instruction SQL a échoué
- 28. Est-ce un moyen de savoir si l'index a été utilisé pour une requête sql particulière
- 29. Comment puis-je savoir si une opération de glisser-déposer a échoué?
- 30. Comment savoir si un événement click a été déclenché ou non dans jquery?
Dans le studio de gestion? En utilisant C#, Delphi, ...? –
Pouvez-vous être plus précis? Où exécutez-vous la mise à jour? Est-ce une application ou juste un studio de gestion ou quoi? Si c'est une application, que de quel genre? Quelle langue utilisez-vous? Mais généralement, si cela échoue, vous obtiendrez une erreur, vous devriez donc avoir un gestionnaire d'erreur :) – hgulyan