我有两个表,联赛和球队,并且正在尝试获取联赛处于某种状态的球队ID的列表。
SELECT t.TeamID
FROM teams t
INNER JOIN leagues l ON t.LeagueID = l.LeagueID
WHERE t.Computer = 1 AND l.BiddingOpen = 1 AND t.Deleted = 0;
检索此代码是:
List<int> result = new List<int>();
using (MySqlConnection connection = new MySqlConnection(DAL.GetConnectionString()))
{
if (DAL.OpenConnection(connection))
{
MySqlDataReader rsData = new MySqlCommand(sql, connection).ExecuteReader(System.Data.CommandBehavior.CloseConnection);
if (rsData.HasRows)
{
while (rsData.Read())
{
result.Add(rsData.GetInt32(rsData.GetOrdinal("TeamID")));
}
}
rsData.Close();
}
}
当我在 phpMyAdmin 中运行SQL语句时,得到的预期结果是 22 行。在 DEBUG 和 RELEASE 配置下在 debugger 中运行代码时,无论是否具有断点,都得到的预期结果> 22 。当我在另一台计算机上运行可执行文件时,我的日志显示我正在返回 0 行。
到目前为止,我已经在两个表上尝试过CHECK TABLE,在两个表上都进行了OPTIMIZE TABLE,然后将MySQL.Data.dll升级到了8.0.13.0版本(从6.0.5.0)。关于为什么我会从.EXE中获得0行,但以其他方式获得正确的行数,这有什么特别之处吗?
答案 0 :(得分:0)
我怀疑我使用的主机更新了他们的MySQL版本,但我没有跟上。由于这不会产生异常,因此我也没有立即注意到它。最终,此行为可能是版本冲突和/或货币问题。
它现在可以正常工作。我做了什么:
一切都按预期进行,从更正上述始终不一致的查询并确认其他一切正常的工作。