c#将数据表绑定到图表。基于列。错误:索引超出范围

时间:2014-11-02 10:24:20

标签: c# charts datatable datasource

我有数据表并希望将其用于图表。这里是代码和错误。

 dt = new DataTable();
        da.Fill(dt);     


        chart1.Series.Clear();         

        chart1.DataSource = dt;            
        chart1.Series[0].XValueMember = "Id";    <-------- ERROR HERE
        chart1.Series[0].YValueMembers = "SerialNo";  
        chart1.DataBind();

错误:索引超出范围。必须是非负数且小于集合的大小

dt content:

[Id]      [Uname]   [SerialNo]
2154      Rauno3     1234
2155      Rauno3     1245
...        ...       ...

我错过了什么? 谢谢!

2 个答案:

答案 0 :(得分:0)

您没有向数据表添加列

dt = new DataTable();//Create new Datatable

chart1.Series[0].XValueMember = "Id";// refer to column which is not there 

在使用列修复错误之前添加此行

dt.ColumnCount = 3;

我可以看到,在您的dt内容中,您获得了3列,但您在代码中仅声明了两列

答案 1 :(得分:0)

简单地设置DataSource不会创建Series系列 (而且,无论如何,你已经清除了它们)
您需要在集合中添加新系列

chart1.Series.Add("MySeries");
chart1.Series["MySeries"].XValueMember = "Id";
chart1.Series["MySeries"].YValueMembers = "SerialNo";