我想问一下vb.net中的折线图系列 . 我有一个有两个系列的折线图 . 我想在具有条件的同一列数据库中向每个系列添加数据 .
我在数据库中的表:
Date##### | Value1 | Value2 | Value3 | Type
23/04/2014 | 1,2 | 12,3 | 10 | Green
23/04/2014 | 11,2 | 3 | 10,3 | Non-Green
24/04/2014 | 10,9 | 3 | 11 | Green
24/04/2014 | 2,3 | 12,3 | 8 | Green
25/04/2014 | 10 | 2 | 10,8 | Non-Green
25/04/2014 | 1,4 | 5 | 12 | Green
在对数据库中的代码执行查询后,我有这个表:
Date##### | Count |Type
23/04/2014 | 2 | Green
23/04/2014 | 2 | Non-Green
24/04/2014 | 3 | Green
25/04/2014 | 2 | Non-Green
25/04/2014 | 1 | Green
我想将Greentype数据添加到系列1中,将非绿色数据添加到系列2中以用于每组日期 . 日期将变为x轴,绿色类型的数据值将成为系列1中的y轴和系列2中的非绿色的数据 . 我只能采取其中一种类型,例如我采取绿色类型数据...这是我的代码:
Protected Sub Chart3Date10_Load(sender As Object, e As EventArgs) Handles Chart3Date10.Load Dim sqlProducts As String = "SELECT d, cnt FROM(SELECT TOP 7 [date] AS d, SUM(CASE WHEN Value1 >= 10 THEN 1 ELSE 0 END + CASE WHEN Value2 >= 10 THEN 1 ELSE 0 END + CASE WHEN Value3 >= 10 THEN 1 ELSE 0 END) AS cnt FROM tbBooth where Type = 'Green' GROUP BY [date],[Type] ORDER BY [date] DESC) x ORDER BY d ASC" Dim da As New SqlDataAdapter(sqlProducts, conn) Dim ds As New DataSet() da.Fill(ds, "tbBooth")
Dim ChartArea1 As ChartArea = New ChartArea()
Dim Legend1 As Legend = New Legend()
Dim Series1 As Series = New Series()
Series1.ChartArea = "ChartArea"
Chart3Date10.TabIndex = 0
Chart3Date10.Series("Series1").XValueMember = "d"
Chart3Date10.Series("Series1").YValueMembers = "cnt"
' Chart3Date10.Series("Series2").YValueMembers = "" ''' Don't know how to call the nongreen type
Chart3Date10.ChartAreas(0).AxisY.LabelAutoFitMaxFontSize = "7"
Chart3Date10.DataSource = ds.Tables("tbBooth")
Chart3Date10.ChartAreas(0).AxisX.MajorGrid.Enabled = False
Chart3Date10.ChartAreas(0).AxisX.LabelStyle.Angle = -45
With Chart3Date10.Series(0)
.ChartType = DataVisualization.Charting.SeriesChartType.Line
.BorderWidth = 4
.BackSecondaryColor = Drawing.Color.Red
.BorderColor = Drawing.Color.Blue
.MarkerStyle = DataVisualization.Charting.MarkerStyle.Triangle
.MarkerSize = 10
.MarkerColor = Color.FromArgb(30, 144, 255)
.MarkerBorderColor = Color.FromArgb(30, 144, 255)
.Color = Color.FromArgb(30, 144, 255)
End With
With Chart3Date10.Series(1)
'.Points.DataBind(dtGraph.DefaultView, "Column1", "Column2", Nothing)
.ChartType = DataVisualization.Charting.SeriesChartType.Line
.BorderWidth = 4
.BackSecondaryColor = Drawing.Color.Red
.BorderColor = Drawing.Color.Blue
.MarkerStyle = DataVisualization.Charting.MarkerStyle.Square
.MarkerSize = 10
.MarkerColor = Color.FromArgb(30, 144, 255)
.MarkerBorderColor = Color.FromArgb(30, 144, 255)
.Color = Color.FromArgb(30, 144, 255) 'change the color of line
End With
End Sub
反正怎么办?我应该使用循环来做到这一点吗?
提前致谢...