来自数据库的实时图表数据

时间:2017-11-18 16:58:08

标签: c# wpf charts livecharts

 private void MapChart()
    {
        List<double> allValues = new List<double>();
        string day = null;

        if (CON.State == ConnectionState.Open)
        {
            CON.Close();
        }

        CON.ConnectionString = ConfigurationManager.ConnectionStrings["conDB"].ConnectionString;
        CON.Open();
        CMD = new SqlCommand("select * from tblWeeklyAudit", CON);
        RDR = CMD.ExecuteReader();
        while (RDR.Read())
        {
            allValues.Add(Convert.ToDouble(RDR["Defects"]));
            day = Convert.ToString(RDR["Day"]);
        }

        SeriesCollection = new SeriesCollection
        {
            new LineSeries
            {
                Values = new ChartValues<double>(allValues)
            }
        };

        Labels = new[] { "Day 1", "Day 2", "Day 3", "Day 4" };

        DataContext = this;
    }

我想知道如何在日变量中获取值。

Labels = new[] { "Day 1", "Day 2", "Day 3", "Day 4"};

没有。天数可能会有所不同我这样做是为了获得学位课程。

1 个答案:

答案 0 :(得分:2)

假设您希望将datareader中每条记录的RDR["Day"]值添加到数组/集合中,RDR["Day"]的值类似于Day1或{{1}或者为每条记录Day2,你可以在循环外创建一个字符串列表,并添加到循环内的字符串中。

与您在DayN列表中的操作类似。

allValues

您可以使用列表执行数组的大多数常见操作(通过它枚举,从特定索引获取项目等)。如果您绝对需要此列表中的数组,则可以调用列表中的var dayLabels= new List<string>(); while (RDR.Read()) { allValues.Add(Convert.ToDouble(RDR["Defects"])); var d= RDR.GetString(RDR.GetOrdinal("Day")); dayLabels.Add(d); } 方法来获取该数组

ToArray