从数据库中获取实时图表数据
Getting Live Chart data from database
我有一个名为 tblWeeklyAudit 的 table,它有不止一行数据。我想阅读它并在实时图表上显示它。代码如下所示使用。
using LiveCharts;
using LiveCharts.Wpf;
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Windows;
using static MAS.clsPUB;
namespace MAS.Windows
{
/// <summary>
/// Interaction logic for Dash.xaml
/// </summary>
public partial class Dash : Window
{
public SeriesCollection SeriesCollection { get; set; }
public string[] Labels { get; set; }
//public Func<double, string> YFormatter { get; set; }
public Dash()
{
InitializeComponent();
LoadData();
}
private void LoadData()
{
double test =0;
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();
if (RDR.Read())
{
test = Convert.ToDouble(RDR["Defects"]);
}
SeriesCollection = new SeriesCollection
{
new LineSeries
{
Values = new ChartValues<double> { test }
},
};
Labels = new[] { "Jan", "Feb", "Mar", "Apr", "May" };
DataContext = this;
}
}
}
图表值由这一行给出,我调用了 table tblWeeklyAudit 并从该缺陷 table。它有几个浮点值行
Values = new ChartValues<double> { test }
要阅读多行,请执行以下操作:
var List<double> allValues = new List<double>();
if (RDR.HasRows)
{
while (RDR.Read())
{
allValues.Add(Convert.ToDouble(RDR["Defects"]));
}
}
然后在您的 SeriesCollection 中使用 allValues。
将双精度值添加到 List<double>
,然后将其传递给 ChartValues<double>
class 的构造函数:
private void LoadData()
{
List<double> allValues = new List<double>();
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"]));
}
SeriesCollection = new SeriesCollection
{
new LineSeries
{
Values = new ChartValues<double>(allValues)
}
};
Labels = new[] { "Jan", "Feb", "Mar", "Apr", "May" };
DataContext = this;
}
我有一个名为 tblWeeklyAudit 的 table,它有不止一行数据。我想阅读它并在实时图表上显示它。代码如下所示使用。
using LiveCharts;
using LiveCharts.Wpf;
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Windows;
using static MAS.clsPUB;
namespace MAS.Windows
{
/// <summary>
/// Interaction logic for Dash.xaml
/// </summary>
public partial class Dash : Window
{
public SeriesCollection SeriesCollection { get; set; }
public string[] Labels { get; set; }
//public Func<double, string> YFormatter { get; set; }
public Dash()
{
InitializeComponent();
LoadData();
}
private void LoadData()
{
double test =0;
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();
if (RDR.Read())
{
test = Convert.ToDouble(RDR["Defects"]);
}
SeriesCollection = new SeriesCollection
{
new LineSeries
{
Values = new ChartValues<double> { test }
},
};
Labels = new[] { "Jan", "Feb", "Mar", "Apr", "May" };
DataContext = this;
}
}
}
图表值由这一行给出,我调用了 table tblWeeklyAudit 并从该缺陷 table。它有几个浮点值行
Values = new ChartValues<double> { test }
要阅读多行,请执行以下操作:
var List<double> allValues = new List<double>();
if (RDR.HasRows)
{
while (RDR.Read())
{
allValues.Add(Convert.ToDouble(RDR["Defects"]));
}
}
然后在您的 SeriesCollection 中使用 allValues。
将双精度值添加到 List<double>
,然后将其传递给 ChartValues<double>
class 的构造函数:
private void LoadData()
{
List<double> allValues = new List<double>();
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"]));
}
SeriesCollection = new SeriesCollection
{
new LineSeries
{
Values = new ChartValues<double>(allValues)
}
};
Labels = new[] { "Jan", "Feb", "Mar", "Apr", "May" };
DataContext = this;
}