我有数据表并希望将其用于图表。这里是代码和错误。
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
... ... ...
我错过了什么? 谢谢!
答案 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";