我从我的数据库中检索了几个数据表,其大小各不相同.这两个中的一个只是一个例子.
看到这里的结构!
我设法创建了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)
看看我的一个示例如何使用代码将DataTable绑定到MS Chart:
希望你会发现它很有用.
以下是要点:
//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