4

奇妙な「バグ/エラー」があります。.NET コネクタでは、5 か何かあるのに 1 つのレコードしか返されません。MySQLコマンドラインも1を返します。これが私が本当にこれにこだわっているコードです。クライアントサーバーを作成し、クライアントがサーバーコンピューターのDBからログインできるようにします。

証拠

奇妙なバグ

コード:

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();
}

注:また、MySQL コマンド ライン クライアントでは「iVision」のみを返します。誰が何をすべきか知っていますか? Ps:クラッシュしたり、例外を返したりしません。

4

2 に答える 2

1

IVision これがあなたにアイデアを与えることを願っています

なぜreader.GetStringを使用しているのですか?それに関する問題が多すぎるのを見てきまし(string)reader["name"]た。クエリを実行するときにもアプローチを使用しないのはなぜですか。クエリを実行するときに返される行の数手動で、正しいDBデータベースを実際に見ていることを確認してください。 =MoopleDEV が正しくないか、別の IP アドレスまたは物理マシン上の場所を指している可能性があります。また、ローカル データベース インスタンスに実際の名前を付けることで、Name混乱が少なくなります。

于 2013-04-05T15:27:57.317 に答える
1

リーダーを作成した後、接続を再開しようとしています。コマンド オブジェクトを作成する前に、connection open ステートメントを移動します。

代わりにこれを試してください:

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();
}
于 2013-04-05T15:24:13.757 に答える