Как решить ошибку `Вы указали неверный порядковый номер столбца`

Я получаю следующую ошибку:

Вы указали неверный порядковый номер столбца

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

using (MySqlCommand cmd = new MySqlCommand(query, con))
{

    cmd.Parameters.AddWithValue("@ID", txtboxID.Text);
    MySqlDataReader dr = cmd.ExecuteReader();

    while(dr.Read())
    {
        int size = dr.GetInt32(3);
        int quantity = dr.GetInt32(4);
        string variant = dr.GetString(2);

        DataGridViewRow row = dataGridView2.Rows
           .Cast<DataGridViewRow>()
           .Where(r => (r.Cells["variant_name"].Value.ToString().Equals(variant) && r.Cells["size"].Value.Equals(size)))
           .First();

        row.Cells["quantity"].Value = quantity;
    }
}

Я получаю сообщение об ошибке в этой строке -> int size = dr.GetInt32(3);

1 ответ

Решение

Ваш запрос возвращает три столбца, а порядковый номер столбца равен 0, поэтому ваши порядковые номера будут 0, 1 и 2, например:

int size = dr.GetInt32(1);
int quantity = dr.GetInt32(2);
string variant = dr.GetString(0);

Как ваш запрос возвращается variant_name, size а также quantity в этом порядке (0, 1 и 2).

Другие вопросы по тегам