.net 给数组赋值时出现错误 “索引超出了数组界限”

想写一个方法,从数据库中查询数据库中一个列中的数据 ,将结果写入一个数组中然后返回
详细代码如下:
public string[] GetDepartmentName()
{
string[] departmentname = new string[] { };

Database db = DatabaseFactory.CreateDatabase("MIConnectionString");
string sqlCmd = "select DepartmentName from Departments";
DbCommand dbCmd = db.GetSqlStringCommand(sqlCmd);

using (IDataReader dataReader = db.ExecuteReader(dbCmd))
{
int i = 0;
while (dataReader.Read())
{
departmentname[i] = dataReader["DepartmentName"].ToString();
i++;
}
if (dataReader != null)
dataReader.Close();
}
return departmentname;
}
执行到i++的时候出现了错误
请问大神我这个方法是不是写的不对啊?
应该怎么写呢?

索引超出了数组界限:我就不给你分析代码了;打个比方departmentname[i] 如果这个departmentname的数字长度是20;你来个departmentname[20](数组从0开始),那就会报错;建议调试方式:设置一个K = departmentname.length;你这里后面I 肯定》K了,自己调试下吧
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-10-25
问题语句是第一句:string[] departmentname = new string[] { };
这里你声明一个数组 长度为1。

别用数组 用List ,因为数组大小固定
List<String> departmentname=new List<String>();
while循环里修改为
departmentname.Add(dataReader["DepartmentName"].ToString());
i变量就直接删掉吧 没什么用本回答被提问者采纳
第2个回答  2014-01-07
声明了一个元素数量为0的数组!

.net 给数组赋值时出现错误 “索引超出了数组界限”
索引超出了数组界限:我就不给你分析代码了;打个比方departmentname[i] 如果这个departmentname的数字长度是20;你来个departmentname[20](数组从0开始),那就会报错;建议调试方式:设置一个K = departmentname.length;你这里后面I 肯定》K了,自己调试下吧 ...

索引超出了数组界限如何解决
数组是通过下表进行访问,但超出下标(索引)最大值(数组长度-1)就会访问超出界限 如:int [] arr= new int[2];;arr[0]=1;arr[1]=2;-此数组长度为2,下标最大为1(数组下标从0开始)-如果下标超出0-1这个范围就会出现索引超出界限问题。-限制下标(索引)的取值范围,或者数组长度增加都可...

vb.net中"索引超出了数组界限"
If varray(i) > min() Then 错了,应该是 > max Then 你写成 min()就会误调用 min() 函数,但是没有参数,结果执行 min() 中的 min = varray(0) 时就会产生错误。

索引超出了数组界限如何解决?
3.异常处理:在编写代码时,可以添加异常处理机制来捕获索引超出界限的错误。当程序试图访问超出数组界限的索引时,可以通过异常处理来终止程序或进行其他适当的处理,从而避免程序崩溃。举个例子,假设我们有一个包含10个元素的数组,索引范围从0到9。如果我们尝试访问索引为10的元素,就会超出数组的界限。为...

索引超出了数组界限
索引超出了数组界限是一种编程错误。解释:在编程中,数组是一种数据结构,用于存储相同类型的元素。索引是用于访问数组中特定元素的位置。当你尝试使用索引访问数组中的元素时,如果索引值超出了数组的实际界限,就会出现“索引超出了数组界限”的错误。具体来说,数组索引通常从0开始,假设一个数组的长度为...

索引超出了数组界限如何解决?
当遇到索引超出数组界限的问题,主要需要从两个方面着手解决。首先,要检查循环条件,确保循环上限设置正确,避免因逻辑错误导致的索引越界。其次,对数组大小进行调整。如果索引超出是因为实际需求大于当前数组容量,可以考虑增大数组,但需注意,盲目扩充可能会增加内存消耗,影响程序性能。动态管理数组大小也是一...

索引超出了数组界限如何解决
从0开始,把重新排序的数组保存在$result变量中。4、在test.php文件中使用foreach方便遍历数组,其中$k为索引值,$v为索引值对应的数组值。5、最后在test.php内使用echo方法输出数组中的索引值和对应的数组值即可。以上就是为您带来的索引超出了数组界限解决方法,输入数值的时候不要错误~。

为什么我索引超出数组界限
索引超出数组界限,一个是判断一下循环语句中的循环上限是否出错,再一个就是直接更改数组大小。“索引超出了数组界限"并不是说索引有多长,而是说这个索引在数组的界限当中找不到,可以适当增大数组的大小,使得下面用到的索引能够处在数组的界限中。当然数组不是越大越好,盲目增大数组大小势必会加大内存...

索引超出了数组界限
当尝试访问数组元素时,如果索引值超过了数组实际长度,就会出现"索引超出了数组界限"的错误,这通常在Java中表现为ArrayIndexOutOfBoundsException。例如,当我们定义一个包含10个元素的int数组,从1到10,试图循环输出11次,就会触发这个错误,因为数组的索引是从0开始,最大到9。为避免此类问题,关键在于...

vb.net索引超出了数组界限
i、j两个变量在for循环结束后数值都是6,所以你的a(i,j)=a(6,6),但是你定义是Dim a%(5, 5),所以才会提醒“索引超出了数组界限”的。没看明白你的TextBox1.text是来显示什么的?如果用来显示a(5,5)的直接写TextBox1.Text &= a(5, 5)就可以了呀 ...

相似回答