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

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

4

1 回答 1

2

假设您希望将RDR["Day"]datareader 中每条记录的值添加到数组/集合中,并且每条记录的值RDR["Day"]类似于Day1orDay2DayN,您可以在循环外创建一个字符串列表并添加到循环内.

类似于您在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();
于 2017-11-18T17:21:19.483 回答