我陷入了这个问题。我需要绘制一个图表,如下所示:这是每个游戏的排名位置。请注意,在发生更多游戏时,每个玩家的位置都在修改。我想按游戏绘制每位玩家的位置历史的折线图。我该怎么办?
Image from DataTable 尝试过该代码,但未正确绘制。
protected void Chart1_Load(object sender, EventArgs e)
{
dt = new DataTable();
dt_jogadores = new DataTable();
con = new MySqlConnection(OnfsDBCon);
con.Open();
string query_jogadores = "SELECT stackbr_tbl_jogadores.nome FROM stackbr_tbl_jogadores;";
string fullquery = "SELECT stackbr_tbl_ranking.posicao, stackbr_tbl_ranking.id_jogos, stackbr_tbl_jogadores.nome " +
"FROM stackbr_tbl_ranking, stackbr_tbl_jogadores " +
"WHERE stackbr_tbl_ranking.id_jogador = stackbr_tbl_jogadores.id;";
adapt = new MySqlDataAdapter(fullquery, con);
adapt_jogadores = new MySqlDataAdapter(query_jogadores, con);
adapt_jogadores.Fill(dt_jogadores);
adapt.Fill(dt);
if (dt_jogadores.Rows.Count > 0)
{
Chart1.DataSource = dt_jogadores;
foreach (DataRow row_jogadores in dt_jogadores.Rows)
{
string series_jogador = row_jogadores["nome"].ToString();
Chart1.Series.Add(series_jogador);
}
}
if (dt.Rows.Count > 0)
{
List<string> xvals = new List<string>();
List<decimal> yvals = new List<decimal>();
Chart1.DataSource = dt;
foreach (DataRow row in dt.Rows)
{
xvals.Add(row["id_jogos"].ToString());
yvals.Add(Convert.ToDecimal(row["posicao"].ToString()));
string series_jogador = row["nome"].ToString();
Chart1.Series[series_jogador].XValueMember = row["id_jogos"].ToString();
Chart1.Series[series_jogador].YValueMembers = row["posicao"].ToString();
Chart1.Series[series_jogador].Points.DataBindXY(xvals.ToArray(), yvals.ToArray());
}
Chart1.DataBind();
}
con.Close();
}