0
我有一個for循環,我用它來獲取列表項以顯示在我的線形圖中。這很簡單,但我得到一個索引超出範圍的錯誤。我理解在for循環中發生的事情的方式是,只要我少於indexCount()就可以繼續計數。我爲什麼要通過我的索引方法?我研究並使用了斷點沒有找到,我=我的集合大小。For循環沒有正確地返回索引
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;
}
你看它與斷點? –
'points.Count'和'chartData.indexCount()'可能會有所不同。如果第二個更大,那麼顯然你會得到'IndexOutOfRangeException'。 –
循環到'points.Count'而不是'chartData.indexCount()'會更安全。 – TypeIA