0

我有一个 Windows 表单图表,可以检索 mysql 数据库中的 x 值并将其绘制在条形图上。这是我第一次这样做,所以我真的不知道为什么会出现这个错误。

public void loadChart()
    {
        string conn = "server=localhost;user=root;password='';database=cashieringdb;";
        string cmdstring = "SELECT sum FROM salessum";
        MySqlDataAdapter adapter = new MySqlDataAdapter(cmdstring, conn);
        DataTable dt = new DataTable();
        adapter.Fill(dt);
        chart1.DataSource = dt;
        this.chart1.Palette = ChartColorPalette.SeaGreen;
        this.chart1.Titles.Add("Daily Record");
        int[] pointsArray = a.mysqlSelect("select sum from salessum"); // error in this line
        string[] seriesArray = { "Mon", "Tue", "Wed", "Th", "Fri" };

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

这是错误显示:无论在互联网上搜索解决方案多少时间,但我仍然无法正常工作。或者有什么简单的方法可以从数据库中检索数据并将其绘制在 windows 窗体图表上?

Error   2   Cannot implicitly convert type 'System.Collections.Generic.List<string>[]' to 'int[]'

编辑

我将代码更改为:

 List<string>[] pointsArray = a.mysqlSelect("select sum from salessum"); //no error

此行中的错误:

 series.Points.Add(pointsArray[i]); 
4

1 回答 1

0

发生此错误是因为您将 List 转换为 int[]。你不能隐含地这样做,你必须明确地这样做。您可以使用Linq.

我假设这a.mysqlSelect("select sum from salessum");是一个方法调用。并输出一个字符串列表(每个字符串代表一个数字

像这样的东西:

int[] pointsArray = a.mysqlSelect("select sum from salessum").Select(i => int.Parse(i)).ToArray();

链接也将对您有所帮助。

已编辑:查看我之前添加的 LINK 并了解您将要完成的工作。:)

在这段代码中,

series.Points.Add(pointsArray[i]);

Points.Add方法不期望一个字符串,它期望一个int. 您之前尝试做的事情是正确的。所以点 Array 必须是int[]. 我的意思是这段代码:

int[] pointsArray = a.mysqlSelect("select sum from salessum");

我想我已经找到了您想要完成的完全相同的事情。请看一下这个链接。这将对您有所帮助。

于 2013-04-12T06:56:51.233 回答