none
Bonjour j'ai une classe Lot qui contient une methode getAllLot qui doit normalement recupérer les données dans ma base BTL . mais à chaque j'ai une erreur "Les données sont null. Cette méthode ou propriété ne peut pas être appelée sur des valeurs Null." RRS feed

  • Question

  •  voici mon code , la tableLot de ma base est déjà rempli :

    public class Lot {

    public   List<Lot> getAllLot(string query) {
           
             dao.getConnection() ;         

            // Créer une liste pour stockerle résultat
           List<Lot> list = new List<Lot> () ;
           // ouvre la connetion
           if (dao.openConnection()== true) {

              MySqlConnection connection = new MySql.Data.MySqlClient.MySqlConnection("server=localhost;database=pharmacie;uid=root;pwd=sqlServer12;");

              // créer la commande
              MySqlCommand cmd = new MySqlCommand (query, connection);
              // Créer un data reader et executer la commande
               
              connection.Open();
              MySqlDataReader reader = cmd.ExecuteReader();
              // lis les données et les stock dans la liste
              
             while (reader.Read()){

                list.Add( new Lot  // j'ai mon erreur ici
                 {
                 
                 numLot = reader.GetString (0),
                 dateFabrication = reader.GetDateTime(1),
                 dateLivraison  = reader.GetDateTime(2),
                 datePeremption  = reader.GetDateTime(3),});
              
                }
           
          reader.Close();
     
          dao.closeConnection();


            }

            return list;
          }

    }

    j'ai besoin d'aide.


    lundi 23 mai 2016 16:46

Réponses

  • Bonjour,

    j'aime pas le dao.getconnection() (faudrait savoir ce qu'elle fait).

    Maintenant, les colonnes (0, 1 2 et 3) ne doivent pas exister ou ne pas correspondre au type attendu.

    Faites un :

    var numLot = reader.GetString(0);
    var dateFabrication = reader.GetDateTime(1);
    ...

    list.Add(new Lot{ numLot = numLot, ...});

    pour voir d'où provient votre erreur


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    mardi 24 mai 2016 12:55

Toutes les réponses

  • Votre question est du C#...il faudrait la déplacer du forum Visual Basic....
    lundi 23 mai 2016 16:48
  • Bonjour,

    j'aime pas le dao.getconnection() (faudrait savoir ce qu'elle fait).

    Maintenant, les colonnes (0, 1 2 et 3) ne doivent pas exister ou ne pas correspondre au type attendu.

    Faites un :

    var numLot = reader.GetString(0);
    var dateFabrication = reader.GetDateTime(1);
    ...

    list.Add(new Lot{ numLot = numLot, ...});

    pour voir d'où provient votre erreur


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    mardi 24 mai 2016 12:55