C# 从Mysql数据库获取数据到C数组中的数组超出范围

C# 从Mysql数据库获取数据到C数组中的数组超出范围,c#,mysql,arrays,C#,Mysql,Arrays,我连接mysql数据库,然后得到x行。当我尝试推送阵列时,系统出现了错误。我不明白这个问题 我试过这个密码。但我得到了一个错误,就像是债券的数组 int uz = b();// this func. get row number on the table int[] userData = new int[uz]; MySqlConnection bag = new MySqlConnection(connstring); MySqlCommand cmd = new MySqlCommand("

我连接mysql数据库,然后得到x行。当我尝试推送阵列时,系统出现了错误。我不明白这个问题

我试过这个密码。但我得到了一个错误,就像是债券的数组

int uz = b();// this func. get row number on the table
int[] userData = new int[uz];
MySqlConnection bag = new MySqlConnection(connstring);
MySqlCommand cmd = new MySqlCommand("Select readerid From readers",bag);
bag.Open();
MySqlDataReader oku = cmd.ExecuteReader();
oku.Read();
for (int i = 0; i <= uz; i++) {
     userData[i] = Convert.ToInt32(oku[i]);
     listBox1.Items.Add(userData[i]);
}
bag.Close();

我认为你应该用I 这将为您指明一个更好的方向:

var userData = new List<int>();
using (var bag = new MySqlConnection(connstring))
using (var cmd = new MySqlCommand("Select readerid From readers",bag))
{
    bag.Open();
    using (MySqlDataReader oku = cmd.ExecuteReader())
    {
        while (oku.Read())
        {
            userData.Add(oku[0]);
            //userData.Add(oku["readerid"]); //would also work
        }
    }
}

此解决方案不起作用。。。我已经尝试了int i=0;ivar userData = new List<int>(); using (var bag = new MySqlConnection(connstring)) using (var cmd = new MySqlCommand("Select readerid From readers",bag)) { bag.Open(); using (MySqlDataReader oku = cmd.ExecuteReader()) { while (oku.Read()) { userData.Add(oku[0]); //userData.Add(oku["readerid"]); //would also work } } }