Partage
  • Partager sur Facebook
  • Partager sur Twitter

SqlDataReader.HasRows retourne toujours True

    28 mars 2019 à 11:00:30

    Bonjour,

    Après avoir parcouru une multitudes de topics anglais sur le phénomène du SqlDataReader.HasRows qui retourne sans cesse true même sans résultats (et particulièrement lorsqu'il s'agit d'une requête SQL avec un agrégat), je sèche complétement sur mon code

    Cependant mon exemple est très simple et HasRows me retoune True, FieldCount me retourne 1 même quand il n'y a aucune ligne côté phpMyAdmin.


    query = "SELECT FK_BarId FROM tlink_bar_beer WHERE FK_BeerId = " + sqlDataReader.GetInt32(0);
     
    MySqlConnection sqlConnexionList = new MySqlConnection("server=localhost;database=beerchecking;uid=root;password=;");
    MySqlCommand commandList = new MySqlCommand(query, sqlConnexionList);
    sqlConnexionList.Open();
     
    //MySqlDataReader sqlDataReaderList = commandList.ExecuteReader();
    //Console.WriteLine(sqlDataReaderList.HasRows);
     
    int[] BarsIds;
    using (MySqlDataReader sqlDataReaderList = commandList.ExecuteReader())
    {
        if (sqlDataReaderList.HasRows)
        {
            try
            {
                BarsIds = new int[sqlDataReaderList.FieldCount];
                int counter = 0;
     
                if (sqlDataReaderList.Read())
                {
                    while (sqlDataReaderList.Read())
                    {
                        int id = sqlDataReaderList.GetInt32(counter);
                        BarsIds[counter] = id;
                        counter++;
                    }
                }
            }
            finally
            {
                sqlDataReaderList.Close();
            }
        }
        else
        {
            BarsIds = new int[0];
        }
    }
     
    sqlConnexionList.Close();


    Merci de votre lecture.

    • Partager sur Facebook
    • Partager sur Twitter
      28 mars 2019 à 17:31:00

      Une raison pour utiliser cette vieillerie de DataReader à la place d'un DataAdapter+DataSet ?

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

      SqlDataReader.HasRows retourne toujours True

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown