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.
Merci de votre lecture.
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
34
35
36
37
38
39
40
41 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();
Partager