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

Live charts data from database

 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;
    }

我想知道如何在里面获取 day 变量 中的值。

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

没有。天可能会有所不同。我正在做这个作为我的学位项目。

假设您希望将 DataReader 中每条记录的 RDR["Day"] 的值添加到 array/collection 并且 RDR["Day"] 的值类似于 Day1Day2DayN 对于每条记录,您可以在循环外创建一个字符串列表并添加到循环内。

类似于您在 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 方法来获取

var myArray = dayLabels.ToArray();