.NET Connector仅返回第一条记录

时间:2013-04-05 15:11:52

标签: c# mysql mysql-connector

我有一个奇怪的错误/错误',在.NET连接器上只返回一条记录,而有5条或其他东西。 MySQL命令行也返回1.这是我真正坚持的代码,我尝试创建一个客户端服务器,让客户端从服务器计算机上的数据库登录:

Proof

Weird bug

代码:

string strConnect = "server=localhost;user=root;password=xxxx;database=MoopleDEV";
string query = "SELECT name FROM accounts;";

using (MySqlConnection connection = new MySqlConnection(strConnect))
using (MySqlCommand command = new MySqlCommand(query, connection))
using (MySqlDataReader reader = command.ExecuteReader())
{
    connection.Open();

    while (reader.Read())
    {
        Console.WriteLine(reader.GetString("name"));
    }

    connection.Close();
}

注意:它也只返回' iVision'在MySQL命令行客户端。谁知道该怎么办? Ps:它不会崩溃或返回任何异常。

2 个答案:

答案 0 :(得分:1)

创建阅读器后,您将重新打开连接。在创建命令对象之前移动连接打开语句。

请改为尝试:

using (MySqlConnection connection = new MySqlConnection(strConnect))
{
    connection.Open();
    using (MySqlCommand command = new MySqlCommand(query, connection))
    using (MySqlDataReader reader = command.ExecuteReader())
    {

        while (reader.Read())
        {
            Console.WriteLine(reader.GetString("name"));
        }
    }
    connection.Close();
}

答案 1 :(得分:1)

IVision我希望这会给你一个想法

为什么你使用reader.GetString我看到太多的问题,为什么不运行(string)reader["name"]方法,当你运行查询时,你在运行查询时返回了多少行也确保你真正关注正确的数据库数据库= MoopleDEV可能不正确或指向物理机器上的不同IP地址或位置。我还将我的本地数据库实例命名为实际的Name,并且会减少混淆