MySQL читатель использование C # - PullRequest
0 голосов
/ 16 ноября 2011

У меня возникли некоторые проблемы с пониманием читателя MySql из MySql.Data.MySqlClient

Это мой код:

while (reader.Read())
{
    documentButtons = new RadioButton[3];
    for (int i = 0; i < 3; i++)
    {
        documentButtons[i] = new RadioButton();
        documentButtons[i].Text = reader["name"].ToString() + " " + (i + 1);

        Console.WriteLine(reader["name"].ToString());

        documentButtons[i].Location = new System.Drawing.Point(10, 10 + i * 20);
        this.Controls.Add(documentButtons[i]);
    }
}
Console.ReadLine();

Это делает 3 радиокнопки с надписями: «Документ1 1"," Документ1 2 "," Документ1 3 "Как вы, наверное, видите, я хочу, чтобы число, стоящее сразу за" Документом ", было равно числу, стоящему за этим.(Мои первые три записи в базе данных - «Документ1», «Документ2» и «Документ3». В моей консоли «Документ1», 2 и 3, все появляются 3 раза. Как я могу создать соответствующее имя насоответствующая кнопка?

1 Ответ

4 голосов
/ 16 ноября 2011

Я не уверен, что полностью понимаю ваш вопрос, но если вы просто хотите, чтобы для каждой строки возвращалось по одному RadioButton, должен работать следующий код:

documentButtons = new RadioButton[3];
int i = 0;
while (i <= 3 && reader.Read()) { // make sure we don't get an IndexOutOfRangeException
  documentButtons[i] = new RadioButton();
  documentButtons[i].Text = reader["name"].ToString() + " " + (i + 1);

  Console.WriteLine(reader["name"].ToString());

  documentButtons[i].Location = new System.Drawing.Point(10, 10 + i * 20);
  this.Controls.Add(documentButtons[i]);

  ++i;
}
...