C#图表日期时间到日期
我有一个绑定到“BindingSource”的图表。 我使用绑定源中的日期列作为X轴,如下所示:C#图表日期时间到日期,c#,winforms,charts,C#,Winforms,Charts,我有一个绑定到“BindingSource”的图表。 我使用绑定源中的日期列作为X轴,如下所示: chart1.Series["chart"].XValueMember = "Date"); 另一方面,我的问题是它也需要考虑小时/分/秒。(因此,它不是将一天分成一个小节,而是将一天分成几个小节) 有没有办法确保在图表中忽略小时/分钟/秒,而只是将每天的小时/分钟/秒组合在一起?无需更改数据源(查看秒数和其他内容对于使用相同数据源的datagridview非常重要)(同时,是否也可以在数月/数年
chart1.Series["chart"].XValueMember = "Date");
另一方面,我的问题是它也需要考虑小时/分/秒。(因此,它不是将一天分成一个小节,而是将一天分成几个小节)
有没有办法确保在图表中忽略小时/分钟/秒,而只是将每天的小时/分钟/秒组合在一起?无需更改数据源(查看秒数和其他内容对于使用相同数据源的datagridview非常重要)(同时,是否也可以在数月/数年内执行此操作?)
图表的完整代码:
BindingSource Datasource= new BindingSource();
Datasource.DataSource = Selected_DataTables;
chart1.Series.Clear();
chart1.Series.Add("chart");
chart1.Series["chart"].XValueMember = "Date";
chart1.Series["chart"].YValueMembers = "Sales";
chart1.DataSource = Datasource;
chart1.DataBind();
(“Selected_DataTables”是可选数据库查询结果的集合)我的解决方案是复制原始数据表,并将其复制到我的图形数据源。副本对原件没有影响,所以我可以使用下面的代码将其转换为我想要的格式。希望它能帮助别人
DataTable chart_DateTable = new DataTable();
chart_DateTable = Selected_DataTables.Copy();
foreach (DataRow row in chart_DateTable.Rows)
{
DateTime test2 = DateTime.Parse(row["Datum"].ToString());
row["Datum"] = test2.Date;
}
你不能将数据按日期分组吗?我认为最好创建类似ViewModel的东西,并以希望数据在报告中显示的方式转换数据。为了获得没有小时/分钟/秒的日期,您可以简单地获取日期列的
date
属性。我的意思是在将数据提供给图表之前对数据进行分组。在这种情况下,Datasource
具体是什么?:)@A.Bakker-请提供填充数据表的数据的代码。这是唯一相关的代码。