我有一个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]);
答案 0 :(得分: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也会对您有所帮助。
编辑: 看看我之前添加的LINK,了解您将要完成的任务。 :)
在此代码中,
series.Points.Add(pointsArray[i]);
Points.Add
方法不期望它期望int
的字符串。你之前尝试做的是正确的。所以点数组必须是int[]
。
我的意思是这段代码:
int[] pointsArray = a.mysqlSelect("select sum from salessum");
我想我找到了你想要完成的完全相同的事情。请看一下这个LINK。这会对你有所帮助。