gpt4 book ai didi

c# - 如何使用数据库中的数据在 C# 中创建折线图?

转载 作者:搜寻专家 更新时间:2023-10-30 23:26:48 26 4
gpt4 key购买 nike

我想创建一个折线图,其中 x 轴显示日期,y 轴显示价格。

我已经从数据库中创建了一个包含所有日期和价格的列表。

var ListOfDates = DBaccess.GetOperationToList().Select(x =>x.Data.ToString());
var ListOfPrices = DBaccess.GetOperationToList().Select(x => x.Price);

for (int i = 0; i < ListOfDates.Count(); i++)
{
chart2.Series["s1"].Points.AddXY(ListOfPrices, ListOfPrices);
}

当我想创建点时,出现以下错误“Points od data doesn't work value type 'System.Linq.Enumerable+WhereSelectEnumerableIterator'。您可以使用 Double、Decimal、Single、int、long、uint、ulong , String, Datetime, short, ushort。”

但是ListOfDates里面的Data是Datetime类型,Price是Double类型。如何更改类型?

最佳答案

要告诉 Series 真正的数据类型是什么,使用这个:

chart2.Series[0].XValueType = ChartValueType.DateTime;

您可以像在代码中一样在循环中添加 DataPoints,但您必须使用元素,而不是整个列表:

chart2.Series["s1"].Points.AddXY(ListOfDates[i], ListOfPrices[i]);

这假设两个列表以相等的长度对齐。

但建议使用DataBinding

如果您的数据源具有命名属性,您可以使用这种形式的数据绑定(bind):

chart2.Series[0].Points.DataBindXY(datalist, "date", datalist, "price");

如果没有,您可以像这样创建一个组合数据源:

var ListOfData = DBaccess.GetOperationToList()
.Select(x => new { date = x.Data, price = x.Price});

然后绑定(bind)它:

 chart2.Series[0].Points.DataBind(ListOfData, "date", "price", "");

请注意,如果像您一样将 x 值添加为字符串,它们将存储为 0 并且您将无法将它们用于任何事情,无论是格式化、搜索还是系列的对齐点。

关于c# - 如何使用数据库中的数据在 C# 中创建折线图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55992771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com