Bonjour à tous !

Voici mon problème, j'ai une classe d'accès aux données qui contient une méthode GetInfoClient() (voir ci-dessous) qui doit me renvoyer un objet Client.
La classe Client contient un seul constructeur qui prend en paramètre un SqlDataReader.

Le problème est que je n'arrive pas à compiler car il me dit que la variable locale client n'est pas assignée et le problème se porte sur return client;

Bon, je comprends bien le message d'erreur... mais je voudrais savoir quelle méthode dois-je utiliser pour contrer ce problème ?!

Suis-je obligé de définir un constructeur vide pour instancier mon objet Client avant le using et ensuite faire une méthode Add() qui prendrait en paramètre le SqlDataReader ??

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
public Client GetInfoClient(string sNumero
{
    try			
    {
        Client client;
 
        using (SqlCommand cmd = new SqlCommand())
        {
            cmd.Connection = this.DbConnection;
            cmd.CommandText = "getInfosClient";
            cmd.CommandType = CommandType.StoredProcedure;
 
            SqlParameter prmNumero= new SqlParameter("@numero", SqlDbType.VarChar, 50);
            prmNumero.Value = sNumero;
            cmd.Parameters.Add(prmNumero);
 
            using (SqlDataReader reader = cmd.ExecuteReader())
            {
                if(reader.Read())
                {
                    client = new Client(reader);
                }
                reader.Close();
            }
        }
        return client;
    }
    catch (Exception ex)
    {
        //
    }
}
Merci d'avance pour vos réponses !
Lionel.