После просмотра множества тем о явлении SqlDataReader.HasRows
, которое всегда возвращает истину даже при пустом результате (и особенно когда речь идет о запросе SQL с агрегатом), я полностью высыхаю в своем коде
Однако мой пример очень прост и HasRows
возвращает True
, FieldCount
возвращает 1
, даже если нет боковой линии 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();
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();
Знаете ли вы, как получить значение HasRows false, когдастрок нет, как в результате phpMyAdmin?
Спасибо за чтение.