Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 分离图系列_Vb.net_Visual Studio 2010_Charts_Mschart - Fatal编程技术网

Vb.net 分离图系列

Vb.net 分离图系列,vb.net,visual-studio-2010,charts,mschart,Vb.net,Visual Studio 2010,Charts,Mschart,我目前有一个图表元素,它有4个系列。我的问题是,当它们单独工作时,如果我设置了多个系列,它会将所有系列的数据设置为最后一个数据集(因此系列1、2和3的位置与4相同) 有人能看看我的坏代码,让我知道哪里出了问题吗?也许还有一些关于整理它的建议。。。我以前从未使用过任何形式的图表 Using con = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test\Response.mdb;") Dim

我目前有一个图表元素,它有4个系列。我的问题是,当它们单独工作时,如果我设置了多个系列,它会将所有系列的数据设置为最后一个
数据集
(因此系列1、2和3的位置与4相同)

有人能看看我的坏代码,让我知道哪里出了问题吗?也许还有一些关于整理它的建议。。。我以前从未使用过任何形式的图表

Using con = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test\Response.mdb;")


    Dim MyQuery As String = "SELECT qry_Response_By_Date_1.Actual_Date, qry_Response_By_Date_1.Mood, Count(qry_Response_By_Date_1.Mood) AS CountOfMood FROM qry_Response_By_Date_1 GROUP BY qry_Response_By_Date_1.Actual_Date, qry_Response_By_Date_1.Mood HAVING (((qry_Response_By_Date_1.Mood)='Happy'));"
    Using cmd = New OleDbCommand(MyQuery, con)
        Dim MyData As New OleDbDataAdapter(MyQuery, con)
        Dim MyDataSet As New DataSet
        con.Open()
        MyData.Fill(MyDataSet, "Table")
        ChrtMoodChanges.DataSource = MyDataSet.Tables("Table")
        Dim Series1 As Series = ChrtMoodChanges.Series("Series1")
        Series1.Name = "Happy"
        ChrtMoodChanges.Series(Series1.Name).XValueMember = "Actual_Date"
        ChrtMoodChanges.Series(Series1.Name).YValueMembers = "CountOfMood"
    End Using


    Dim MyQuery2 As String = "SELECT qry_Response_By_Date_1.Actual_Date, qry_Response_By_Date_1.Mood, Count(qry_Response_By_Date_1.Mood) AS CountOfMood FROM qry_Response_By_Date_1 GROUP BY qry_Response_By_Date_1.Actual_Date, qry_Response_By_Date_1.Mood HAVING (((qry_Response_By_Date_1.Mood)='Neutral'));"
    Using cmd = New OleDbCommand(MyQuery2, con)
        Dim MyData2 As New OleDbDataAdapter(MyQuery2, con)
        Dim MyDataSet2 As New DataSet
        MyData2.Fill(MyDataSet2, "Table")
        ChrtMoodChanges.DataSource = MyDataSet2.Tables("Table")
        Dim Series2 As Series = ChrtMoodChanges.Series("Series2")
        Series2.Name = "Neutral"
        ChrtMoodChanges.Series(Series2.Name).XValueMember = "Actual_Date"
        ChrtMoodChanges.Series(Series2.Name).YValueMembers = "CountOfMood"
    End Using


    Dim MyQuery3 As String = "SELECT qry_Response_By_Date_1.Actual_Date, qry_Response_By_Date_1.Mood, Count(qry_Response_By_Date_1.Mood) AS CountOfMood FROM qry_Response_By_Date_1 GROUP BY qry_Response_By_Date_1.Actual_Date, qry_Response_By_Date_1.Mood HAVING (((qry_Response_By_Date_1.Mood)='Sad'));"
    Using cmd = New OleDbCommand(MyQuery3, con)
        Dim MyData3 As New OleDbDataAdapter(MyQuery3, con)
        Dim MyDataSet3 As New DataSet
        MyData3.Fill(MyDataSet3, "Table")
        ChrtMoodChanges.DataSource = MyDataSet3.Tables("Table")
        Dim Series3 As Series = ChrtMoodChanges.Series("Series3")
        Series3.Name = "Sad"
        ChrtMoodChanges.Series(Series3.Name).XValueMember = "Actual_Date"
        ChrtMoodChanges.Series(Series3.Name).YValueMembers = "CountOfMood"
    End Using


    Dim MyQuery4 As String = "SELECT qry_Response_By_Date_1.Actual_Date, qry_Response_By_Date_1.Mood, Count(qry_Response_By_Date_1.Mood) AS CountOfMood FROM qry_Response_By_Date_1 GROUP BY qry_Response_By_Date_1.Actual_Date, qry_Response_By_Date_1.Mood HAVING (((qry_Response_By_Date_1.Mood)='Angry'));"
    Using cmd = New OleDbCommand(MyQuery4, con)
        Dim MyData4 As New OleDbDataAdapter(MyQuery4, con)
        Dim MyDataSet4 As New DataSet
        MyData4.Fill(MyDataSet4, "Table")
        ChrtMoodChanges.DataSource = MyDataSet4.Tables("Table")
        Dim Series4 As Series = ChrtMoodChanges.Series("Series4")
        Series4.Name = "Angry"
        ChrtMoodChanges.Series(Series4.Name).XValueMember = "Actual_Date"
        ChrtMoodChanges.Series(Series4.Name).YValueMembers = "CountOfMood"
    End Using
End Using

p.S.SQL为每个。。。让它在图表中存储正确的数据是我的问题。

每次设置
ChrtMoodChanges.DataSource
时,都会覆盖图表的数据源,这就是为什么只会得到最后一个数据集

我建议您在开始将数据表绑定到图表之前合并数据表,然后将每个系列引用到数据源/数据表中的一列

ChrtMoodChanges.Series(Series1.Name).XValueMember = "Actual_Date"
ChrtMoodChanges.Series(Series1.Name).YValueMember = "CountOfMood_Col1"
....
....
ChrtMoodChanges.Series(Series4.Name).XValueMember = "Actual_Date"
ChrtMoodChanges.Series(Series4.Name).YValueMember = "CountOfMood_Col4"
因此,作为清理代码的建议,我将执行以下操作

  • 获取4个数据表
  • 将“实际_日期”作为主键合并数据表
  • 将每列作为新系列添加到图表中
  • 合并示例:

    希望这有帮助