用于在报表查看器和图表中显示 SQL 数据的 C# WIN 窗体的脚本

本文关键字:数据 显示 SQL 脚本 窗体 WIN 报表 用于 | 更新日期: 2023-09-27 18:30:17

我在SQL2012中有一个表,其中包含字段名称 id、时间、计数器。它是由一个应用程序自动生成的,该应用程序不断记录计数器值到计数器,并且该值每时每刻都在增加。提交的时间是日期时间。我想在 c# winforms 中以两种格式显示此表,第一种是可以显示实时最近值计数器值的图表,最后一天的步长为 1 小时,上个月和过去几年,它类似于股票图表。这里的诀窍是计数器值每时每刻都在增加。此外,还需要在报表查看器中显示相同的数据。

请告诉我一个在Visual Studio 2012中的解决方案。谢谢

用于在报表查看器和图表中显示 SQL 数据的 C# WIN 窗体的脚本

我提供的链接包含大量示例,您可以使用它来使用它。我以前只与MSCharts合作过,只创建这些图表的静态图像以将它们打印在报告中,但我可以提供帮助。

我想您已经将 MSChart 组件添加到您的表单中,并指定了要使用的表格类型(饼图、折线图等)。

您需要做的第一件事是将所需的数据数据绑定到表中。此代码取自我给您的示例链接:

  // Access database
System.Windows.Forms.DataVisualization.Charting.Utilities.SampleMain.MainForm mainForm = (System.Windows.Forms.DataVisualization.Charting.Utilities.SampleMain.MainForm)this.ParentForm;
string fileNameString = mainForm.applicationPath + "''data''chartdata.mdb";
// Initialize a connection string    
string myConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileNameString;
// Define the database query    
string mySelectQuery="SELECT * FROM YOURTABLE;";
// Create a database connection object using the connection string    
OleDbConnection myConnection = new OleDbConnection(myConnectionString);
// Create a database command on the connection using query    
OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection);
// Open the connection    
myCommand.Connection.Open();
// Create a database reader    
OleDbDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
// Since the reader implements and IEnumerable, pass the reader directly into
// the DataBindTable method with the name of the Column to be used as the XValue
Chart1.DataBindTable(myReader, "Date");
// Close the reader and the connection
myReader.Close();
myConnection.Close();

一旦您设法以所需的方式在MSChart中显示数据,您需要创建一个"更新"方法,该方法将在一定时间内执行以更新表上的值。