为什么ExecuteReader只给我1行数据?

Dev*_*ean 1 c# mysql executereader

我有这个代码,它只返回第一个字符串[0]和其他人的错误,说索引超出数组,这意味着只有1行被拉,但我不知道为什么!

MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand command = new MySqlCommand("SELECT email_address FROM account_info", connection);
MySqlDataReader reader;

try
{

    connection.Open();
    reader = command.ExecuteReader();
     if (reader.HasRows)
    {
        while (reader.Read())
        {
            textBox1.Text = reader[0].ToString();

            textBox2.Text = reader[0].ToString();

            textBox3.Text = reader[0].ToString();
        }


        reader.Close();
    }
Run Code Online (Sandbox Code Playgroud)

dso*_*ano 5

reader[0]从阅读器访问第一个字段,而不是第一行.查看MSDN中的示例代码.

// Call Read before accessing data.
while (reader.Read())
{
    Console.WriteLine(String.Format("{0}, {1}",
            reader[0], reader[1]));
}
Run Code Online (Sandbox Code Playgroud)

这会写出每行的第一列和第二列.

另外,我不确定你为什么不使用using声明,以及为什么你要ExecuteReaderfinally块中调用- 这些都看起来很奇怪.