0
System.IO.StreamReader rdr = new StreamReader(csvPath.Text);

            DataTable dt = new DataTable("Table");
            dt.Columns.Add(new DataColumn("Date"));              
            dt.Columns.Add(new DataColumn("A.TEMP090835"));
            dt.Columns.Add(new DataColumn("Difference"));

            while ((rowValue = rdr.ReadLine()) != null)
            {
                string[] arr;
                arr = rowValue.Split(',');
                DataRow row = dt.NewRow();
                row["Date"] = arr[0];
                row["A.TEMP090835"] = arr[4];
                row["Difference"] = //here is the problem
                dt.Rows.Add(row);

            }
            dt.Rows.RemoveAt(0);
            dataGridView2.DataSource = dt;
            rdr.Close();

这段代码创建了一个包含 3 列的数据表......日期、A.TEMP...... 和差异。我从中导入数据的 csv 文件没有第三列,即“差异”。我需要为该列写一个表达式.....其逻辑可以通过以下csv文件理解:

日期,A.TEMP090835,差异

2011 年 10 月 28 日,25.56,0

10/28/2011, 26.65, 26.65 - 25.56

10/28/2011, 27.11, 27.11 - 25.56

10/28/2011, 29.43, 29.43 - 25.56

10/28/2011, 30.29, 30.29 - 25.56

10/28/2011, 31.57, 31.57 - 25.56

10/28/2011, 32.82, 32.82 - 25.56

10/28/2011, 34.07, 34.07 - 25.56

如何填写“差异”列?

4

1 回答 1

0

使用临时变量,您可以实现

        System.IO.StreamReader rdr = new StreamReader(csvPath.Text);

        DataTable dt = new DataTable("Table");
        dt.Columns.Add(new DataColumn("Date"));              
        dt.Columns.Add(new DataColumn("A.TEMP090835"));
        dt.Columns.Add(new DataColumn("Difference"));
    double d=0;
        while ((rowValue = rdr.ReadLine()) != null)
        {
            string[] arr;
            arr = rowValue.Split(',');
            DataRow row = dt.NewRow();
            row["Date"] = arr[0];
            row["A.TEMP090835"] = arr[4];
            row["Difference"] = Convert.ToDouble(arr[4])-d;
            dt.Rows.Add(row);
    d=Convert.ToDouble(arr[4]);

        }
        dt.Rows.RemoveAt(0);
        dataGridView2.DataSource = dt;
        rdr.Close();

不确定您是否可以通过获取上一行来使用表达式来执行此操作。

从 o'reilly http://ondotnet.com/pub/a/dotnet/2003/05/26/datacolumn_expressions.html检查这个

于 2012-09-26T07:14:28.840 回答