0

まず、これはよくある質問であることを知っています。しかし、三項演算子の DataRow 型などの null 許容型を宣言できない型を比較しているため、他のソリューションを使用できません。また、データをピボットしていて、列の自動生成を true に設定する必要があるため、グリッドで通貨をフォーマットできません。また、1回の呼び出しで生データを取得し、必要な場所でフォーマットを行う必要があるため、通貨を他の場所でフォーマットすることもできません。LinqSql を使用する必要があるのは、Telerik RadGrid にバインドする前にデータを準備しているためです。

var drResults = from t1 in DatesTable.AsEnumerable()
                join t2 in dtResult.AsEnumerable() on t1["MONTH_YEAR"] equals t2["MONTH_YEAR"] into t1_t2
                from t2 in t1_t2.DefaultIfEmpty()
                select new
                {
                    MONTH_YEAR = t1.Field<string>("MONTH_YEAR"),
                    Appraisal_Fees = t2 != null ? String.Format("{0:C}", t2.Field<decimal>("AppraisalFees")) : 0): 0
                };
4

1 に答える 1

1

引数内の三項式をに移動してみてくださいString.Format

String.Format("{0:C}", (t2 != null ? t2.Field<decimal>("AppraisalFees") : 0M)) 

また、2行で書くことで、読みやすくすることもできます。

decimal appraisalFees = (t2 != null ? t2.Field<decimal>("AppraisalFees") : 0M);
Appraisal_Fees = String.Format("{0:C}", appraisalFees);
于 2012-05-19T19:50:54.470 に答える