我很好奇如何在我通过数据库填充的图表中访问YValueMember的值,并在标签中显示该值。基本上,我希望将标签文本设置为等于图表的y值。
我正在通过数据库查询填充图表,并将YValueMembers设置为我在查询中使用的别名
SELECT ( SELECT SUM(DealerNet) FROM Agreement WHERE IssueDate BETWEEN @PFOM and @date) AS Actual
然后使用此查询填充图表
Dim cmdSQL As New SqlCommand(query) cmdSQL.Parameters.Add("@date", SqlDbType.Date).Value = previousMonthDateToday cmdSQL.Parameters.Add("@PFOM", SqlDbType.Date).Value = previousFirstOfMonth pmtdChart.Series(0).ChartType = SeriesChartType.Column pmtdChart.Series(1).ChartType = SeriesChartType.Column pmtdChart.Legends(0).Enabled = True pmtdChart.Series(0).XValueMember = xMember1 pmtdChart.Series(1).XValueMember = xMember2 pmtdChart.Series(0).YValueMembers = "Actual" pmtdChart.Series(1).YValueMembers = "Projected" lblPMTDprojected.Text = pmtdChart.Series(1).ToString() lblPMTDbilled.Text = pmtdChart.Series(0).ToString() pmtdChart.DataSource = GetData(cmdSQL) pmtdChart.DataBind()
出于这个问题的目的,可以忽略“预测”值,因为我已经简化了上面的查询,只包含与我需要的值相关的信息。
我试过了
label.Text = Chart.Series(0).ToString label.Text = Chart.Series(0).Points(0).ToString() label.Text = Chart.Series(0).YValueMembers("Actual").ToString label.Text = Chart.Series(0).YValueMembers(0).ToString
第一个非常简单地提取我分配给的文本值
pmtdChart.Series(0).YValueMembers = "Actual"
第二个返回一个异常错误,指出“索引超出范围。必须为非负且小于集合的大小。”
第三个返回一个异常,说明“从字符串“文本”转换为类型“整数”无效。
第四个简单地返回“实际”的第一个字符
从技术上讲,我可以简单地从数据库中提取该值并将其分配给标签,但我想知道是否有一种方法可以从我的图表中获取该值,这样我就不必再次查询数据库,因为我首先使用了类似的查询来填充图表。
关于这个问题的任何帮助或提示都将非常感谢,我觉得应该有一种方法来做我正在尝试做的事情。如果需要更多信息,我很乐意提供。