从数据表C#中绘制图

时间:2019-02-25 14:54:40

标签: c# asp.net plot charts

我陷入了这个问题。我需要绘制一个图表,如下所示:这是每个游戏的排名位置。请注意,在发生更多游戏时,每个玩家的位置都在修改。我想按游戏绘制每位玩家的位置历史的折线图。我该怎么办?

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();
}

0 个答案:

没有答案