C# 如何将字符串系统集合转换为int?

C# 如何将字符串系统集合转换为int?,c#,mysql,database,charts,C#,Mysql,Database,Charts,我有一个windows窗体图表,可以检索mysql数据库中的x值,并将其绘制在条形图上。这是我第一次这样做,所以我真的不知道为什么会出现这个错误 public void loadChart() { string conn = "server=localhost;user=root;password='';database=cashieringdb;"; string cmdstring = "SELECT sum FROM salessum";

我有一个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]);
        }

发生此错误的原因是您正在将列表转换为int[]。你不能隐式地这样做,你必须显式地这样做。您可以使用Linq轻松地做到这一点

我假设a.mysqlselectsum来自salessum;是一个方法调用。并输出一个stringseach字符串列表,该字符串表示一个数字

大概是这样的:

int[] pointsArray = a.mysqlSelect("select sum from salessum").Select(i => int.Parse(i)).ToArray();
这对你也有帮助

编辑: 看看我前面添加的链接,了解一下您将要完成的任务:

在这部法典中

series.Points.Add(pointsArray[i]);
Add方法不需要字符串,它需要int。您前面尝试的操作是正确的。所以点数组必须是int[]。 我是说这个代码:

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

我想我已经找到了你想要完成的事情。请看看这个。这将对您有所帮助。

代码中出现此异常的地方请看我发布的代码,这里有一行注释。那么,a.mysqlselectselectselectsum from salessum究竟是什么?因为正如错误所暗示的,它显然不是int[]。尝试var obj=a.mysqlselectselectselectsum from salessum;看看obj是什么类型的。也许你可以找到一种方法,从任何对象中获取int[],doeschart1.Series.Add。。。拿一个字符串[]?它不应该是图表中点/坐标的集合吗?是的,它可以同时保存字符串和int值,但int[]不能在cif中显示错误消息“a.mysqlselectselectsum from salessum”是一个列表[]不是一个列表,所以你的代码不会工作。嗨,我尝试了你的代码,但我在这一行int中有一个错误。Parseino它是不同的,我正在浏览你给定的链接,无论如何,这都要感谢。@Diode是的,在你发布的链接上,这正是我要做的。区别只是PintArray中的值是从数据库中检索的,我现在正在尝试修复。@Diode请看这个问题,我是提出这个问题的人,我已经有了一个输出,但只显示了不同的结果。
int[] pointsArray = a.mysqlSelect("select sum from salessum").Select(i => int.Parse(i)).ToArray();
series.Points.Add(pointsArray[i]);
int[] pointsArray = a.mysqlSelect("select sum from salessum");