で見てみましょう:
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("ID", typeof(decimal)));
dt.Columns.Add(new DataColumn("SUM-ID", typeof(decimal), "ID + ID"));
var row = dt.NewRow();
row["ID"] = 2;
dt.Rows.Add(row);
var val = dt.Rows[0]["SUM-ID"];
結果:予想通りval
が4
です。
はのは、何か他のものを試してみましょう:
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("ID", typeof(string)));
dt.Columns.Add(new DataColumn("SUM-ID", typeof(decimal), "ID + ID"));
var row = dt.NewRow();
row["ID"] = "2";
dt.Rows.Add(row);
var val = dt.Rows[0]["SUM-ID"];
結果:val
は22
結論である:あなたのID
列はString型であるが、それは代わりに、それ以外の場合は文字列の連結が使用されている数値型である必要があります。
更新:あなたは(またはしたくない)ことができない場合は、あなたが式の中Convert
を使用することができ、カラムのデータ型を設定します。2 * Convert(ID, 'System.Int32')
@ここでの問題は、私が使用していますChrableWue- XMLファイルとXMLからのデータをデータテーブルに設定します。共存する表で、私は式を計算しようとしています。これは汎用コードでなければならず、どのようにして数値型を設定することができますか? – psobhan
私の回答が更新されました – ChrisWue