2

データソースに値があり、データソースに問題はありません。X と Y の値をチャートに割り当てる必要があります。チャートがエラーをスローし、「TotalInboundArrivals」という名前の列がないことを示します。

ChartControl chart = new ChartControl();
chart.Location = new Point(38, 301);
chart.Size = new Size(789, 168);
Series series = new Series("Series1", ViewType.Bar);
chart.Series.Add(series);
series.DataSource = ds;
series.ArgumentScaleType = ScaleType.Numerical;
series.ArgumentDataMember = "TotalInboundArrivals"; //throws error here
series.ValueScaleType = ScaleType.Numerical;
series.ValueDataMembers.AddRange(new string[] { "StartTime" }); //throws error here 

((SideBySideBarSeriesView)series.View).ColorEach = true;
((XYDiagram)chart.Diagram).AxisY.Visible = true;
chart.Legend.Visible = true;
chart.Visible = true;
chart.Dock = DockStyle.Fill;
xtraTabPage1.Controls.Add(chart);

私の問題はどこにありますか? 助言がありますか?

4

1 に答える 1

3

Series.DataSource Propertyを通過しましたか。DataSet を DataSource としてシリーズに割り当てるのは間違いです。考えてみてください。データ ソースの列をどのように検索できるでしょうか。Ds.Tables["TableName"]データソースとして割り当ててみてください。

データソース テーブルの作成

private DataTable CreateChartData(int rowCount) {
            // Create an empty table.
            DataTable table = new DataTable("Table1");

            // Add two columns to the table.
            table.Columns.Add("Argument", typeof(Int32));
            table.Columns.Add("Value", typeof(Int32));

            // Add data rows to the table.
            Random rnd = new Random();
            DataRow row = null;
            for (int i = 0; i < rowCount; i++) {
                row = table.NewRow();
                row["Argument"] = i;
                row["Value"] = rnd.Next(100);
                table.Rows.Add(row);
            }

データソースに対応するシリーズ プロパティの指定

Series series = new Series("Series1", ViewType.Bar);
            chart.Series.Add(series);

            // Generate a data table and bind the series to it.
            series.DataSource = CreateChartData(50);

            // Specify data members to bind the series.
            series.ArgumentScaleType = ScaleType.Numerical;
            series.ArgumentDataMember = "Argument";
            series.ValueScaleType = ScaleType.Numerical;
            series.ValueDataMembers.AddRange(new string[] { "Value" });

を確認し、作成Charts -> Providing Dataセクションを読んで理解を深めてください。

参照

お役に立てれば。

于 2012-11-02T07:05:24.353 に答える