在浏览了许多关于SqlDataReader.HasRows
即使结果为空也总是返回 true 现象的主题后(尤其是当它是关于带有聚合的 SQL 查询时),我完全干了我的代码
但是我的示例非常简单,即使没有 phpMyAdmin 侧行,也会HasRows
返回True
、FieldCount
返回。1
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();
当 phpMyAdmin 结果中没有行时,您知道如何使 HasRows 为 false 吗?
谢谢阅读。