Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 679
  • Last Modified:

Error assigning series chart area in vb.net

Hello,
I'm developing a vb.net application that includes a graphing module.  I keep getting a error on line
  series.ChartArea = "Default"

The error reads
A chart element with the name of 'Default' could not be found in the chart collection'.5
All I am doing is assigning a name to that series chart area.  I've used this code previously with no problem so I am not sure what is going on.

For Each g As GraphReport In graphs

                If MatchingMetricUnits(g) = Nothing Then
                    MessageBox.Show(g.DataVersionIdOne.ToString & " and " & g.DataVersionIdTwo.ToString & " do not have corresponding units!", "Erro")
                    Exit Sub
                Else
                    strUnits = MatchingMetricUnits(g)
                End If

                Dim ds As New DataTable
                ds = ReportDB.GetDeltaSeriesData(g.DataVersionIdOne, g.DataVersionIdTwo, g.MetricName)

                Dim dtgv As New DataTable
                dtgv = ReportDB.GetDeltaReportData(g.DataVersionIdOne, g.DataVersionIdTwo, g.MetricName)



                Dim newtable As New DataTable

                dset.Tables.Add(dtgv)
                For Each table As DataTable In dset.Tables
                    newtable.Merge(table)
                Next
                dgvGraphResults.DataSource = newtable



                Dim strSeriesName As String = g.DataVersionIdOne.ToString & " - " & g.DataVersionIdTwo.ToString

                RemoveDuplicateSeries(Chart1.Series, strSeriesName)
                Dim series As Series = Chart1.Series.Add(strSeriesName)
                series.Tag = g.DataVersionIdOne & "-" & g.DataVersionIdTwo
                If g.GraphType = 0 Then
                    series.ChartType = SeriesChartType.Spline
                ElseIf g.GraphType = 1 Then
                    series.ChartType = SeriesChartType.Column
                ElseIf g.GraphType = 2 Then
                    series.ChartType = SeriesChartType.StackedArea
                ElseIf g.GraphType = 3 Then
                    series.ChartType = SeriesChartType.StackedColumn
                End If

                strTitleName = g.GraphTitle.ToString
                'MetricName = g.GraphTitle.ToString

                series.ChartArea = "Default"
                Dim xfield As String = "ForecastYear"
                Dim xval As New ArrayList

                For Each r As DataRow In ds.Rows
                    xval.Add(r.Item(xfield))
                Next

                Dim yfield As String = "MetricValue"
                Dim yval As New ArrayList

                For Each r As DataRow In ds.Rows
                    yval.Add(r.Item(yfield))
                Next

                ' Bind the double array to the Y axis points of the Default data series
                Chart1.Series(strSeriesName).Points.DataBindXY(xval, yval)

                series.BorderWidth = 2
                Chart1.DataBind()

            Next

Open in new window

0
chtullu135
Asked:
chtullu135
1 Solution
 
calacucciaCommented:
In my opinion, ChartArea should be assign to the Chart object, not the Series object.
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now