Bonsoir, à l'endroit où j'ai mis un * dans le code, est l'endroit où se produit l'erreur, j'ai l'impression qu'il ne me retourne pas un int, mais le reste du programme fonctionne, le problème est juste là.
Merci d'avance.
Voilà le code :
static public void CréerCompte(PerComplet p)
{
DbConnection connection = UsineCommande.Usine.Con;
DbCommand commande1 = UsineCommande.Usine.CreerComptePER;
DbCommand commande2 = UsineCommande.Usine.CreerCompteAPP;
connection.Open();
try
{
commande1.Parameters["@per_nom"].Value = p.Nom;
commande1.Parameters["@per_prenom"].Value = p.Prenom;
commande1.Parameters["@per_mdp"].Value = p.MDP;
commande1.Parameters["@per_email"].Value = p.Mail;
commande1.Parameters["@per_organisateur"].Value = p.Organisateur;
commande2.Parameters["@app_fk_gro"].Value = p.Idgroupe;
int Id = ChercherIdPER(p.Nom, p.Prenom, p.Mail);
commande2.Parameters["@app_fk_per"].Value = Id;
if (commande1.ExecuteNonQuery() == 0 || commande2.ExecuteNonQuery() == 0)
throw new Exception("Echec d'insertion." );
}
catch (Exception e)
{
throw UsineException.ObtenirException(e.Message);
}
finally
{
connection.Close();
}
}
static public int ChercherIdPER(String Nom, String Prenom, String Mail)
{
DbCommand commande = UsineCommande.Usine.ChercherIdPER;
try
{
commande.Parameters["@per_nom"].Value = Nom;
commande.Parameters["@per_prenom"].Value = Prenom;
commande.Parameters["@per_email"].Value = Mail;
DbDataReader r = commande.ExecuteReader();
r.Read();
* return Convert.ToInt32(r.GetInt32(0));
}
catch
{
throw new Exception("Erreur lors de la recherche de l'identifiant" );
}
}