我今天似乎只是失去了它。任何人都可以帮我找到我在这里做错了什么:
1. for (int y = 0; y < 5; y++)
2. {
3. IDataReader getLineInfo = DB.GetRS("Select LineText From TIF Where SCRID ='" + scRID + "' AND LineNum='" + y + "'");
4. if (getLineInfo.Read())
5. {
6. string[] lineText = new string[y];
7. lineText[y] = (string)getLineInfo["LineText"];
8.
9. ((Label)item.FindControl(string.Format("lbl{0}", y))).Text = "<a href='" + lineText[y] + "' target='_blank'> Link</a>";
10. }
11. getLineInfo.Dispose();
12. getLineInfo.Close();
13. }
我在第 9 行收到错误。我最初让“y”从 1 开始,因为没有 lineNum == 0 .. 但我想既然数组从 0 开始,我就把那里搞砸了。但这并没有解决我的问题。如果有人可以帮助我了解我不是什么,将不胜感激。此页面上也没有用户输入,因为我知道使用 select 语句的整个 IDataReader 可能很糟糕。
如果需要任何额外的信息,我可以写进去,感谢任何可以提供帮助的人
最佳答案
string[] lineText = new string[y]; // array 0 .. y-1
lineText[y] = ...; // y = 1 element too far
此外,lineText
是在循环内部本地创建的,您可以简单地将 string[] lineText
替换为 string lineText
而忘记 y
。
如果您认为您需要 y
,那么此代码中还有其他错误/缺失。
关于c# - 索引超出数组范围 : IndexOutOfRangeException was unhandled by user code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12501685/