如何解决错误`您指定了无效的列序号

时间:2013-05-27 01:21:57

标签: c# database datagridview datagridviewrow

我收到以下错误:

  

您指定了无效的列序号

我已经检查了数据库中的列号,我知道它是正确的。这是我的代码:

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

我在这一行收到错误 - &gt; int size = dr.GetInt32(3);

1 个答案:

答案 0 :(得分:1)

您的查询返回三列,并且列序号为0,因此您的序数将为0,1和2,如下所示:

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

当您的查询按此顺序(0,1和2)返回variant_namesizequantity时。