gpt4 book ai didi

c# - 如何在 C# 中链接 XY 条形图中的两个 sql 列

转载 作者:太空宇宙 更新时间:2023-11-03 15:05:17 25 4
gpt4 key购买 nike

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Web.UI.DataVisualization.Charting;
using System.Windows.Forms.DataVisualization.Charting;
using System.Data.SqlClient;

namespace BAR_CHART
{
public partial class Form1 : Form
{
private DataTable dataTable = new DataTable();
public SqlConnection con = new SqlConnection(@"server=$$$$;database=$$$$$;uid=$$$$;password=$$$$$;MultipleActiveResultSets=True");
public SqlCommand cmd, cmd1;
public SqlDataReader dr1, dr2;
public Form1()
{
InitializeComponent();
}

private void chart1_Click(object sender, EventArgs e)
{
{
BarExample(); //Show bar chart
//SplineChartExample();
}

}
public void BarExample()
{
this.chart1.Series.Clear();
string SelectMeterMaster = "Select PLC_ID from [DB].[dbo].[MASTER] ";
string SelectMeterMaster1 = "Select V_Ph_a from [DB].[dbo].[MASTER] ";
// dataTable.AsEnumerable().Select(r => r.Field<string>("ID")).ToArray();


cmd = new SqlCommand(SelectMeterMaster, con);
con.Open();
dr1 = cmd.ExecuteReader();

if (dr1.Read())
{


string[] seriesArray = { SelectMeterMaster };
int[] pointsArray = { 2 };

// Set palette
this.chart1.Palette = System.Windows.Forms.DataVisualization.Charting.ChartColorPalette.EarthTones;

// Set title
this.chart1.Titles.Add("Meter");

// Add series.
for (int i = 0; i < seriesArray.Length; i++)
{
System.Windows.Forms.DataVisualization.Charting.Series series = this.chart1.Series.Add(seriesArray[i]);
series.Points.Add(pointsArray[i]);
}
}
}
}

}

我想在我的 XY 条形图中映射两个 sql 列值 我在表中有大约 10 个条目,我想将它们绘制成条形图。我在获取变量中的 10 列值时遇到问题,以便我可以将其传递到 string[] seriesArray 中。

最佳答案

这是一个简单的 winform 图表示例:

/// <summary>
/// Chart data
/// </summary>
public class PointChart
{

public string SeryName { get; set; }

public int XValue { get; set; }

public int YValue { get; set; }
}

/// <summary>
/// Create series and points
/// </summary>
/// <param name="listChartItems"></param>
private void BindDataToChart(List<PointChart> listChartItems)
{
if (listChartItems == null || listChartItems.Count == 0) return;

chart1.Series.Clear();

var listSeries = listChartItems.Select(x => new { x.SeryName }).Distinct().ToList();

// Add list series
foreach (var sery in listSeries)
{
var newSery = new Series(sery.SeryName);

var listPoints = listChartItems.Where(x => x.SeryName == sery.SeryName).ToList();

// Add sery's points
foreach (var point in listPoints)
{
newSery.Points.Add(new DataPoint(point.XValue, point.YValue));
}

chart1.Series.Add(newSery);
}
}

您可以像这样将数据绑定(bind)到 Form_Load 中的图表

    private void ChartSample_Load(object sender, EventArgs e)
{
var listChartItems = new List<PointChart>();
listChartItems.Add(new PointChart { SeryName = "Seri 1",XValue = 2,YValue = 3});
listChartItems.Add(new PointChart { SeryName = "Seri 1",XValue = 3,YValue = 5});
listChartItems.Add(new PointChart { SeryName = "Seri 1",XValue = 4,YValue = 7});
listChartItems.Add(new PointChart { SeryName = "Seri 1",XValue = 5,YValue = 9});

listChartItems.Add(new PointChart { SeryName = "Seri 2", XValue = 1, YValue = 10 });
listChartItems.Add(new PointChart { SeryName = "Seri 2", XValue = 8, YValue = 11 });
listChartItems.Add(new PointChart { SeryName = "Seri 2", XValue = 4, YValue = 5});
listChartItems.Add(new PointChart { SeryName = "Seri 2", XValue = 6, YValue = 3 });

BindDataToChart(listChartItems);
}

关于c# - 如何在 C# 中链接 XY 条形图中的两个 sql 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43866679/

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