【发布时间】:2017-06-22 16:20:01
【问题描述】:
在我的应用中,一位教师可以有多个班级,当我排除一位教师的个人资料时,我必须首先删除他的班级。我正在尝试将这个老师的每个 class_id 放在一个 int 数组中,以便稍后删除 id 包含在这个数组中的所有类。
这是我目前的代码:
int x = 0;
int[] count = new int[x];
while (reader_SelectedClasses.Read())
{
if(x != 0)
{
x++;
count = new int[x];
}
count[x] = _class.Class_id = reader_SelectedClasses.GetInt16("class_id");
}
这就是
reader_SelectedClasses.Read()
做:
select class_id from tbl_class where user_id = " + id + ";
这就是回报,当我在 MySQL 上尝试这个时:
但是当我在我的 DAO 类上运行代码时,它会返回一个 IndexOutOfRangeException。我错过了什么?已经去了here,但不太明白。有人可以用几句话解释一下并为此发布和修复代码吗?
【问题讨论】:
-
if 条件永远不会执行,x 的值永远不会增加。因此,您通常会为同一索引添加价值。
-
编辑您的问题后,我撤回了我的 cmets。
-
你需要逐行遍历你的逻辑,你会确切地看到问题出在哪里。您正在尝试获取空数组的第一个索引。还有 x 将如何增加?
-
@GK 将其全部更改为零,仍然错误。
-
@Pelicer 数组为空,即 0 项。您尝试在索引 0 处获取项目,这是填充数组中的第一个索引,但您的数组为空,因此没有索引 0,因此索引超出范围。