将csv文件导入DataTable并使用Chart绑定列

时间:2014-03-27 10:02:37

标签: c# charts datatable mschart

如果我遗漏了一些我需要设置的设置,请告诉我。 在我的图表中,我在我的x asis中得到列值而不是0 1 2 3 4 5 6 7 8 9

    private void button2_Click(object sender, EventArgs e)
    {       

        chart1.DataSource = csvData;
        chart1.ChartAreas[0].AxisX.Minimum = 0;
        chart1.ChartAreas[0].AxisX.Maximum = 10;
        chart1.ChartAreas[0].AxisX.Minimum = -5;
        chart1.ChartAreas[0].AxisX.Maximum = 5;

        chart1.Series["Series2"].YValueMembers = "Column name";
        chart1.Series["Series2"].XValueMember = "Column name";
        chart1.DataBind();

    }




}
}

2 个答案:

答案 0 :(得分:0)

好的我现在明白你的问题了。问题是,当您从csv读取数据时,它将所有数据作为字符串添加,然后图表将值读取为字符串,这就是为什么Chart1.ChartAreas(0).AxisX.Maximum = 10没有更改轴的原因。

您需要更改从csv读取数据的方式。实质上你需要添加

csvData.Columns["CpK_Refrence"].DataType = GetType(Integer)

在将任何数据添加到数据表之前 [添加数据后无法更改列类型]。如果所有列都转到数字,则更改以下内容以使所有列都为数字列

DataColumn datecolumn = new DataColumn(column);
'TO
DataColumn datecolumn = new DataColumn("Column1", typeof(double));

答案 1 :(得分:0)

private void button2_Click(object sender,EventArgs e)     {

    DataTable dtCloned = csvData.Clone();
    dtCloned.Columns["column name"].DataType = typeof(double);
    dtCloned.Columns["column name"].DataType = typeof(double);

    chart1.DataSource = dtCloned;
    chart1.ChartAreas[0].AxisX.Minimum = 0;
    chart1.ChartAreas[0].AxisX.Maximum = 10;
    chart1.ChartAreas[0].AxisX.Minimum = -5;
    chart1.ChartAreas[0].AxisX.Maximum = 5;

    chart1.Series["Series2"].YValueMembers = "Delta_Sigma";
    chart1.Series["Series2"].XValueMember = "CpK_Refrence";
    chart1.DataBind();

}