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"]
值添加到数组/集合中,并且 RDR["Day"]
的值类似于每条记录的 Day1
或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
方法来获取它
var myArray = dayLabels.ToArray();