【问题标题】:Getting DevExpress Chart Series Values From Array VB.NET从数组 VB.NET 获取 DevExpress 图表系列值
【发布时间】:2015-02-20 14:58:53
【问题描述】:

我试图从 SQL 表中的数据设置 DevExpress 图表系列。 一切都很顺利,只是图表只采用了上一个系列的最后一个属性。
我的代码是:

con.Open() 'it opens SQL Connection
For i = 0 To (CheckedListBoxControl1.CheckedItems.Count - 1) 'list from ListBox        
    Lst.Add(CheckedListBoxControl1.CheckedItems(i).ToString) 'Putting Data in Array List
    Dim Strl As String = String.Format("Select * from VPRogressCumulative where fname like '{0}' and lname like  '{1}' order by id, no, CAST('1.' + date AS datetime)", ComboBox1.Text, Lst(i))

    Dim sqlCom As New SqlCommand(Strl)
    sqlCom.Connection = con
    Dim myDA As SqlDataAdapter = New SqlDataAdapter(sqlCom)
    Dim myDataSet As DataSet = New DataSet()
    myDA.Fill(myDataSet, "VPRogressCumulative")
    ChartControl1.DataSource = myDataSet
    ChartControl1.DataAdapter = myDA

    Dim ser As New Series(Lst(i), ViewType.Line)
    ChartControl1.Series.Add(ser)

    ser.ArgumentDataMember = "VPRogressCumulative.Date"
    ser.ValueDataMembers.AddRange(New String() {"VPRogressCumulative.Cumulative"})
Next
con.Close()

我相信我的问题在于:

Dim ser As New Series(Lst(i), ViewType.Line)
ChartControl1.Series.Add(ser)
ser.ArgumentDataMember = "VPRogressCumulative.Date"
ser.ValueDataMembers.AddRange(New String() {"VPRogressCumulative.Cumulative"})

最后两行给出了我无法解决问题的同一系列新属性。

【问题讨论】:

    标签: vb.net charts devexpress


    【解决方案1】:

    你的问题在这里:

    ChartControl1.DataSource = myDataSet
    ChartControl1.DataAdapter = myDA
    

    在循环的每次迭代中,您都在创建新的DataSet,它会覆盖您的ChartControl1 中之前的DataSource。您必须使用Series.DataSource 而不是ChartControl.DataSource。您也可以使用DataTable 代替DataSet
    示例如下:

    'Your code:
    'Dim myDataSet As DataSet = New DataSet()
    'myDA.Fill(myDataSet, "VPRogressCumulative")
    'ChartControl1.DataSource = myDataSet
    'ChartControl1.DataAdapter = myDA
    
    'Replace with this:
    Dim myDataTable As DataTable = New DataTable("VPRogressCumulative")
    myDA.Fill(myDataTable)
    
    Dim ser As New Series(Lst(i), ViewType.Line)
    ChartControl1.Series.Add(ser)
    
    'Your code.
    'ser.ArgumentDataMember = "VPRogressCumulative.Date"
    'ser.ValueDataMembers.AddRange(New String() {"VPRogressCumulative.Cumulative"})
    
    'Replace with this:
    ser.DataSource = myDataTable
    ser.ArgumentDataMember = "Date"
    ser.ValueDataMembers.AddRange(New String() {"Cumulative"})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多