저는 회선 그래프에 표시하기 위해 목록 항목을 가져 오는 데 사용하는 for 루프가 있습니다. 그것은 매우 간단하지만 색인이 범위 오류를 벗어났습니다. 내가 for 루프에서 일어나는 일을 이해하는 방식은 i가 적 으면 indexCount()가 계속 카운트를 유지하는 한 길다. 왜 내 인덱스 방법을 지나가고 있습니까? 내가 연구하고 사용 중단 점을 아무것도 발견하고 난 = 내 컬렉션 크기.루프가 인덱스를 제대로 반환하지 않습니다.
List<ChartData> points = ChartData.getData();
for (int i = 0; i < chartData.indexCount(); i++)
{
series0.AddItem(points[i].Produced);
series1.AddItem(points[i].Labeled);
RadChart1.PlotArea.XAxis.Items.Add(new ChartAxisItem(points[i].CasesLabeled.ToString()));
}
대부분의 행을 표시 할 수 있도록 사용자 지정 색인을 만들었습니다. 따라서 chartData.indexCount()
메서드가 있습니다. 내 indexCount 메소드가 여기 뭔가 잘못되었습니다.
public int indexCount()
{
StringBuilder sqlString = new StringBuilder();
sqlString.Append("SELECT Count(Number) FROM SomeDB.dbo.Order");
SqlDataReader reader = null;
SqlConnection dbConn = DBHelper.getConnection();
try
{
reader = DBHelper.executeQuery(dbConn, sqlString.ToString(), null);
if (reader != null)
{
while (reader.Read())
{
number = reader.GetInt32(0);
}
}
reader.Close();
reader.Dispose();
dbConn.Close();
dbConn.Dispose();
}
catch (Exception ex)
{
throw ex;
}
return number;
}
당신은 그것의 중단 점으로 봤어 ... 그냥 변수에 그 결과를 저장 ... 모든 반복에 indexCount를 호출하지 않습니다? –
'points.Count'와'chartData.indexCount()'는 다를 수 있습니다. 두 번째 것이 더 크면 분명히'IndexOutOfRangeException'을 얻게 될 것입니다. –
'chartData.indexCount()'대신'points.Count'를 반복하는 것이 더 안전합니다. – TypeIA