sql - 将数据表列分配给图表列颜色
问题描述
我正在使用ASP.NET图表来显示SQL存储过程的结果,并且我正在使用最后一个存储的 proc 列作为 colorID 来显示我希望图表中的每一列是哪种颜色。存储过程有 6 列和 6 行,如下所示(我使用了下面的示例编号)。colorID 范围是 0,1,2。
问题是图表列颜色不会动态更改为存储过程中记录显示的内容。下面的代码只是获取最后一个记录ColorID
号并将其用于每个条形颜色。
我在网上搜索了很多例子,但没有运气,这是我的第一篇文章,所以请原谅任何上传错误。对此的任何帮助将不胜感激。谢谢。
col1 | col2 | col3 | col4 | col5 | ColorID
-----+------+------+------+------+--------
| | | | | 0
| | | | | 1
| | | | | 2
| | | | | 0
| | | | | 0
| | | | | 0
这是下面的代码:
For Each dataRow As DataRow In ds.Rows
For Each dataColumn As DataColumn In ds.Columns
For Each pt As Web.UI.DataVisualization.Charting.DataPoint In Chart1.Series("Series1").Points
If (dataRow("ColorID").ToString() = "0") Then
pt.Color = Drawing.ColorTranslator.FromHtml("#ff4000")
ElseIf (dataRow("ColorID").ToString() = "1") Then
pt.Color = Drawing.ColorTranslator.FromHtml("#e6e600")
ElseIf (dataRow("ColorID").ToString() = "2") Then
pt.Color = Drawing.ColorTranslator.FromHtml("#009933")
End If
Next
Next
Next
解决方案
我能够使用下面显示的不同方法来解决这个问题。
Dim array As String()
Dim labelsList As List(Of String) = New List(Of String)
For Each row As DataRow In ds.Rows
labelsList.Add(row.Item("ColorID"))
Next
aar = labelsList.ToArray()
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If aar(0) = "0" Then
Chart1.Series(0).Points(0).Color = Drawing.Color.Red
ElseIf aar(0) = "1" Then
Chart1.Series(0).Points(0).Color = Drawing.Color.Yellow
ElseIf aar(0) = "2" Then
Chart1.Series(0).Points(0).Color = Drawing.Color.Green
End If
推荐阅读
- ios - iOS应用程序进入后台并在后台运行了几个小时而没有杀死
- azure - azure aks 与 jenkins 同时部署到多个 k8s 集群
- javascript - Compare 2 Arrays of Objects and Remove Duplicates
- php - 在php中使用数组和内爆函数的自定义查询
- git - 从特定提交开始创建一个新项目并保留历史记录
- swift - 试图理解这个警告:[UITabBarItem]!使用 '!' 这里已弃用,将在未来的版本中删除
- javascript - 传单地图未从 Web 服务返回 JSON 数据
- c - 替换嵌套 for 循环的宏
- jquery - 我想为 utils 对话框中的按钮添加 id
- react-native - 如何在我的平面列表中实现动画?