[C#] Comment gérer les erreurs SQL ?
Bonjour,
j'ai crée une méthode permettant d'exécuter un ordre SQL. Comment puis-je tester le retour de cette méthode pour afficher un message si une erreur se prodruit ?
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
protected void verifAuthentification(object sender, EventArgs e)
{
string login = txtLogin.Text;
string passwd = txtPasswd.Text;
bool resultat;
// Vérification du login et du mot de passe
resultat = outils.OpenDbConnection();
if (resultat == true)
{
string query = "";
query += "SELECTa nom,prenom";
query += " FROM upmc_ldap";
query += " WHERE login='" + login + "'";
query += " AND passwd='" + passwd + "'";
OracleDataReader result = outils.SQL_selectQuery(query);
// J'aimerai pouvoir tester result avant de faire le result.Read()
if (result.Read())
{
string nom = outils.mefString(result.GetString(0));
string prenom = outils.mefString(result.GetString(1));
Session["authentification"] = "ok";
Session["login"] = login;
Session["nom"] = nom;
Session["prenom"] = prenom;
Response.Redirect("gestionProfil.aspx");
}
else
{
gestionErreur("02");
}
resultat = outils.CloseDbConnection();
if (resultat == false) { gestionErreur("03"); }
}
else
{
gestionErreur("01");
}
}
public void gestionErreur(string typeErreur)
{
string msgErreur = "<br />Authentification échouée.<br />";
Session["authentification"] = "ko";
switch (typeErreur)
{
case "01": msgErreur += "Erreur [ERR-LOG01xx] : Problème
rencontré lors de la connexion à la base de données.";
break;
case "02": msgErreur += "Erreur [ERR-LOG02xx] : Problème
rencontré lors de l'interrogation de la base de données.";
break;
case "03": msgErreur += "Erreur [ERR-LOG03xx] : Problème
rencontré lors de la clôture de la connexion à la base de données.";
break;
}
divErreur.Visible = true;
labErreur.Text = msgErreur;
}
public static OracleDataReader SQL_selectQuery(string query)
{
OracleCommand Mycommand = new OracleCommand();
OracleDataReader result;
try
{
Mycommand.Connection = outils.connectionDB;
Mycommand.CommandText = query;
result = Mycommand.ExecuteReader();
}
catch(Exception)
{
return null;
}
return result;
}
public static bool OpenDbConnection()
{
bool retVal = true;
try { connectionDB.Open(); }
catch { retVal = false; }
return retVal;
}
public static bool CloseDbConnection()
{
bool retVal = true;
try { connectionDB.Close(); }
catch { retVal = false; }
return retVal;
} |
Merci et bonne journée.