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();

このコードは、日付、A.TEMP、差分の 3 つの列を持つデータ テーブルを作成します。私がデータをインポートしているcsvファイルには、「差分」である3番目の列がありません。その列の式を記述する必要があります...そのロジックは、次の csv ファイルで理解できます。

日付、A.TEMP090835、差分

2011 年 10 月 28 日、25.56、0

2011 年 10 月 28 日、26.65、26.65 - 25.56

2011 年 10 月 28 日、27.11、27.11 - 25.56

2011 年 10 月 28 日、29.43、29.43 - 25.56

2011 年 10 月 28 日、30.29、30.29 - 25.56

2011 年 10 月 28 日、31.57、31.57 - 25.56

2011 年 10 月 28 日、32.82、32.82 - 25.56

2011 年 10 月 28 日、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();

前の行を取得して式でこれを行うことができるかどうかはわかりません。

オライリーからこれを確認してくださいhttp://ondotnet.com/pub/a/dotnet/2003/05/26/datacolumn_expressions.html

于 2012-09-26T07:14:28.840 に答える