C#中的数组索引超出绑定异常

时间:2016-01-24 08:15:29

标签: c# mysql arrays

我有一组像48这样的按钮。

在表单加载事件中,我从每个按钮中获取所有按钮文本值以运行查询,这是使用“for loop and array”完成的。

到目前为止,这是我的工作。

Button[] btnarray = { button1, button2, button3, button5, button6};

for (int j = 0; j <= btnarray.Length; j++)
{
    MySqlConnection con = new MySqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["db"].ConnectionString);
    con.Open();

    string query = "SELECT carplate FROM billing WHERE carplate='" + btnarray[j].Text + "' AND dates=DATE(NOW())"; // This is where i get error.

    MySqlCommand command = new MySqlCommand(query, con);

    var reader = command.ExecuteReader();

    if (reader.Read())
    {
        btnarray[j].BackColor = Color.Red;
    }
    else
    {
        btnarray[j].BackColor = Color.Khaki;
    }                
}

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

for循环不正确你应该与<比较长度而不是<=长度:

 for (int j = 0; j < btnarray.Length; j++)
    {

答案 1 :(得分:0)

Array的索引从0到数组大小 - 1.将循环切换到

for (int j = 0; j < btnarray.Length; j++)

或者

for (int j = 0; j <= btnarray.Length - 1; j++)

第一个选项更好,因为它每次迭代都会保存btnarray.Length - 1计算。