c# - 始终不一致的 MySQL 查询结果 - 返回 0 行与 n 行

标签 c# mysql

我有两个表,联赛和球队,我正在尝试获取联赛处于特定状态的球队 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 行的预期结果。当我在 调试器 中运行代码时,有或没有断点,在 DEBUGRELEASE 配置中,我得到了预期的结果 22。当我在另一台机器 上运行可执行文件时,我的日志显示我返回了 0 行。

到目前为止,我已经在两个表上尝试了 CHECK TABLE,在两个表上都尝试了 OPTIMIZE TABLE,并将我的 MySQL.Data.dll 升级到版本 8.0.13.0(从 6.0.5.0)。关于为什么我会从 .EXE 中获得 0 行但其他方式获得正确的行数,有什么突出的地方吗?

最佳答案

我怀疑我使用的主机更新了他们的 MySQL 版本,而我没有跟上。由于这没有产生异常,所以我也没有立即注意到它。最终,此行为可能是版本冲突和/或货币问题。

它现在工作正常。我做了什么:

  • 我将项目的目标框架更新为 .NET 4.5.2
  • 我确保打包了 MySQL.Data.dll 版本 8.0.13.0。
  • 我部署并测试了。

一切都按预期进行,从更正上面提到的始终不一致的查询到确认其他一切已经正常工作。

关于c# - 始终不一致的 MySQL 查询结果 - 返回 0 行与 n 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55056719/

相关文章:

c# - 接口(interface)和继承

c# - 如何禁用特定 ASP.NET Core 5.0 Web API 操作的自动模型绑定(bind)?

c# - 使用外键删除 LINQ 中的记录 - 无效强制转换异常

php - php 中的数据库查询失败

php - BLOB 图像返回损坏的图像

c# - 刷新 ObservableCollection

c# - nuget - 找不到 Microsoft.Windows.UI.Xaml.CSharp.targets

php - 空 _FILES 变量

php - 从 Varchar 字段中查找最大值

mysql - 如何从 mysql 中的备份创建新数据库