C#Charts从datatable添加多个系列

8bi*_*cat 3 c# charts

我从我的数据库中检索了几个数据表,其大小各不相同.这两个中的一个只是一个例子.

看到这里的结构!
在此输入图像描述
我设法创建了2个不同的系列,让它们出现在传奇故事中.

我的问题是如何将数据绑定到相应的系列.系列名称是从列doman_namn创建的,系列的数量是从"antal"列创建的,该列保存唯一URL的数量.

问题 如何将ADDY和ADDX绑定到它现在失败的图表上.

到目前为止这是我的代码......

Chart1.DataSource = dt;

int amountofrows = Convert.ToInt32(dt.Rows[0]["antal"].ToString());

for (int i = 0; i < amountofrows; i++)
{
    string serieName = dt.Rows[i]["doman_namn"].ToString();

    Chart1.Series.Add(serieName);
    Chart1.Series[i].ChartType = SeriesChartType.Line;

    foreach(DataRow dr in dt.Rows)
    {
        try
        {
            if (String.Equals(serieName,dr["doman_namn"].ToString(), StringComparison.Ordinal))     
            {
            Chart1.Series[serieName].Points.AddY(Convert.ToDouble(dr["ranking_position"]));
            Chart1.Series[serieName].Points.AddY(Convert.ToDouble(dr["ranking_date"]));
            }
        }
        catch (Exception)
        {
            throw new InvalidOperationException("Failed when adding points");
        }
    }
}


Chart1.DataBind();
Chart1.Visible = true;
Run Code Online (Sandbox Code Playgroud)

GREGOR帮助后的代码

for (int i = 0; i < amountofrows; i++)
{
    string serieName = dt.Rows[i]["doman_namn"].ToString();

    Chart1.Series.Add(serieName);
    Chart1.Series[i].ChartType = SeriesChartType.Line;

    Chart1.Series[serieName].XValueMember = "ranking_date";
    Chart1.Series[serieName].YValueMembers = "ranking_position";

}
Chart1.DataBind();
Run Code Online (Sandbox Code Playgroud)

Gre*_*mar 6

看看我的一个示例如何使用代码将DataTable绑定到MS Chart:

如何从控制台应用程序中基于DataTable绘制图表?

希望你会发现它很有用.

以下是要点:

//setting the source from datatable....
chart.DataSource = dt;

//setting XValueMember for first serie (Name is column inside datasource)...
serie1.XValueMember = "ranking_position";

//setting YValueMembers...
serie1.YValueMembers = "ranking_date";
Run Code Online (Sandbox Code Playgroud)

这是绑定多个系列的另一个链接:

http://dotnetslackers.com/articles/net/Binding-a-Microsoft-Chart-with-a-Dataset.aspx