首页 > 解决方案 > MySQL SELECT 查询仅返回一行

问题描述

我正在尝试针对我的数据库查询多行,但我只得到一个。我正在使用 MySQL 8.0 服务器。

//My async method that should return all entries that
//match given query
private async Task<List<List<string>>> QueryDb_ManyEntriesAsync(string queryString)
{
   MySqlCommand command = new MySqlCommand(queryString, _connection);
   DbDataReader data = await command.ExecuteReaderAsync();

   var content = new List<List<string>>();

   while (true) 
   {
      var tmp = new List<string>();
      for (int i = 0; i < data.FieldCount; i++)
      {
         await data.ReadAsync();
         tmp.Add(data[i].ToString());
      }
      content.Add(tmp);

      if (!await data.NextResultAsync())
         break;
   }

   await command.DisposeAsync();
   await data.DisposeAsync();

   return content;
}

查询是:

SELECT * 
FROM Transactions 
WHERE user_id=1;

当我从 MySQL Workbench 运行查询时,这就是我的表的样子: https ://i.imgur.com/C3qev2A.png

但是当我使用我的 C# 方法时,我只得到最后一行。即await data.NextResultAsync()在第一次 for 循环迭代后返回 false。

标签: c#mysql.net-core

解决方案


推荐阅读