我试图将值添加到列表中,但我不断收到错误“ArgumentOutOfRangeException”,我正在使用实时图表(图表库)。
这是我的代码:
string constring = "server=localhost;port=3306;username=root;password=root";
string Query = "SELECT Therapist, COUNT(*) AS magnitude FROM dbinfo.tblorder GROUP BY Therapist ORDER BY magnitude DESC";
MySqlConnection con = new MySqlConnection(constring);
MySqlCommand cmdDB = new MySqlCommand(Query, con);
MySqlDataReader myReader;
try
{
con.Open();
myReader = cmdDB.ExecuteReader();
while (myReader.Read())
{
int valuez = myReader.GetInt16("magnitude");
cartesianChart1.Series[1].Values.Add(valuez);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
Data.con.Close();
cartesianChart1.Series = new SeriesCollection
{
new ColumnSeries
{
Title = "Therapist",
Values = new ChartValues<int> { 10, 50, 39, 50 }
}
};
cartesianChart1.AxisX.Add(new Axis
{
Title = "Therapists",
Labels = new[] { "Maria", "Susan", "Charles", "Frida" }
});
答案 0 :(得分:2)
在从数据读取器读取数据之前,您应该初始化certesianChart.Series
还将索引更改为零
cartesianChart1.Series[0].Values.Add(valuez);
这是工作代码。
cartesianChart1.Series = new SeriesCollection
{
new ColumnSeries
{
Title = "Therapist",
Values = new ChartValues<int> { 10, 50, 39, 50 }
}
};
try
{
con.Open();
myReader = cmdDB.ExecuteReader();
while (myReader.Read())
{
int valuez = myReader.GetInt16("magnitude");
cartesianChart1.Series[0].Values.Add(valuez);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
答案 1 :(得分:0)
cartesianChart1.Series仅包含此处定义的1个项目:
cartesianChart1.Series = new SeriesCollection
{
new ColumnSeries
{
Title = "Therapist",
Values = new ChartValues<int> { 10, 50, 39, 50 }
}
};
您尝试访问此部分中的第2项:
while (myReader.Read())
{
int valuez = myReader.GetInt16("magnitude");
cartesianChart1.Series[1].Values.Add(valuez);
}
尝试访问第一项:
while (myReader.Read())
{
int valuez = myReader.GetInt16("magnitude");
cartesianChart1.Series[0].Values.Add(valuez);
}