如何在 vb.net CHART Y AXIS 中显示数据库中的总行数

Posted

技术标签:

【中文标题】如何在 vb.net CHART Y AXIS 中显示数据库中的总行数【英文标题】:How to display overall count of rows in a database in vb.net CHART Y AXIS 【发布时间】:2021-10-26 08:16:20 【问题描述】:

编辑我从 Hel o Ween 的评论中尝试了 RecCount,它显示了这个异常 RecCount

这是我的代码,x 轴正常工作,但 y 轴显示此错误:Exception of Y axis

我试图使 x 轴在特定列中具有所有相同的值。 y 轴作为数据库中的总行数

        Dim READER As OleDbDataReader
        Try

            Dim query As String
            query = "SELECT ID, purok  FROM Household"
            cmd = New OleDbCommand(query, con)
            READER = cmd.ExecuteReader
            Dim dT As New DataTable
            dT.Load(READER)


            Dim counter As String
            counter = dT.Rows.Count.ToString


            'Dim countrow = Convert.ToInt16(cmd.ExecuteScalar)
            'Label3.Text = countrow
            Chart1.Series("Purok").XValueMember = "Purok"
            Chart1.Series("Purok").YValueMembers = counter
            Chart1.DataSource = dT
            Chart1.DataBind()

            con.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

【问题讨论】:

我认为您需要将数据源的列 ID 之一提供给 YValueMember 而不是 Counter 图表Id和Purok似乎不太有用。我认为他们正在从您的数据源中询问列名。你需要重新考虑这一点。手动绘制图形的模拟以查看您的数据如何适应。您的数据访问代码远非最佳实践。查看一些教程。 如果您需要行数,请修改您的 SQL 语句,例如"SELECT ID, purok, COUNT(*) As RecCount FROM Household"。如果@Mary 是正确的并且.YValueMembers 需要一个(数据库)列名,则将其分配为“RecCount”。 【参考方案1】:

感谢 Hel O'Ween 的评论和此线程:"You tried to execute a query that does not include the specified aggregate function" 现在已修复。我只是在 FROM 语句之后调整并添加了 GROUP BY。

Heres the result chart

Dim READER As OleDbDataReader
        Try

            Dim query As String
            query = "SELECT purok, COUNT(*) As RecCount FROM Household GROUP BY purok"
            cmd = New OleDbCommand(query, con)
            READER = cmd.ExecuteReader
            Dim dT As New DataTable
            dT.Load(READER)


          
            Chart1.Series("Purok").XValueMember = "purok"
            Chart1.Series("Purok").YValueMembers = "RecCount"
            Chart1.DataSource = dT
            Chart1.DataBind()

            con.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

【讨论】:

以上是关于如何在 vb.net CHART Y AXIS 中显示数据库中的总行数的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA Chart 刻度 Axis.DisplayUnit

Excel VBA Chart 刻度 Axis.DisplayUnit

chart_flutter 如何删除 y 轴数值中的逗号

highcharts--横向柱状图(x,y互调)

如何在我的数组上使用 forEach 循环在我的图表上绘制 x 和 y 变量(Chart.js)

matlab中plot()画图时如何指定X Y轴的范围