[C#] Difficulté avec les catch
Bonjour à tous,
J'ai de la difficulté à utiliser les catch, j'ai toujours des erreur à la compilation qui m'empêche d'utiliser les résultat.
Exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public string getQuestion()
{
SqlConnection SqlCnx = new SqlConnection("workstation id=SERVER;packet size=4096;user id=xxx;data source=\"SERVER\\SQLSERVER\";persist security info=False;initial catalog=infosalvage;password=xxx");
string SQL = "SELECT SecretQ FROM cust WHERE EmailWork = '"+usrMail.Text+"'";
SqlCommand myCommand = new SqlCommand(SQL, SqlCnx);
SqlCnx.Open();
SqlDataReader SqlData = myCommand.ExecuteReader();
SqlData.Read();
string db_SecretQ = Convert.ToString(SqlData.GetValue(0));
return db_SecretQ.ToString();
SqlData.Close();
SqlCnx.Close();
} |
Cependant si la personne n'a pas entré sont email cela lève un exception se qui est normal. Quand j'essaie de traiter cette exception avec un try catch de l'exception sql cela me donne un erreur.
Mon catch est comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
public string getQuestion()
{
try
{
SqlConnection SqlCnx = new SqlConnection("workstation id=SERVER;packet size=4096;user id=xxx;data source=\"SERVER\\SQLSERVER\";persist security info=False;initial catalog=infosalvage;password=xxx");
string SQL = "SELECT SecretQ FROM cust WHERE EmailWork = '" + usrMail.Text + "'";
SqlCommand myCommand = new SqlCommand(SQL, SqlCnx);
SqlCnx.Open();
SqlDataReader SqlData = myCommand.ExecuteReader();
SqlData.Read();
string db_SecretQ = Convert.ToString(SqlData.GetValue(0));
return db_SecretQ.ToString();
SqlData.Close();
SqlCnx.Close();
}
catch (SqlException ex)
{
System.Diagnostics.Trace.WriteLine("[getQuestion] Exception " + ex.Message);
}
} |
J'ai esseyer avec un if pour voir la différence mais cela me donne la même erreur.
Voici L'erreur :
Code:
1 2
|
'members.Login.getQuestion()': not all code paths return a value |
J'ai souvent se genre de problème avec les catch, il doit y avoir quelque chose que je n'ai pas bien comprit.
Merci pour votre aide.