-1

DataGridView にバインドするには、データテーブルの特定の列が必要です。次のコラムがあります。

Work1 Price Area que Len bre size
A 12 x 1 1.2 1 1.2
A 12 y 2 2 2.2 4.4
A 12 z 3 11 1 11

上記は私のデータ テーブルであり、指定された列、つまりArea、Que、bre、size [Que * (bre * Len)]
が必要です。このタイプのデータを取得するには、Linq-to-DataTable クエリに従って使用しました。

 var data = dt.AsEnumerable().Select
                (r => new
                {
                    Area = r.Field<string>("Area"),
                    Que = r.Field<int>("Quantity"),
                    Breath = r.Field<decimal>("Breath"),
                    Length = r.Field<decimal>("Length"),
                    totLen = r.Field<int>("Quantity") * (r.Field<decimal>("Breath") * r.Field<decimal>("Length"))
                }).ToList();

しかし、それは機能していません。価値がありません。理由はわかりません?? どうすればこれを行うことができますか?そして、他の代替オプションが利用できる場合は、それを見るのが大好きです...

4

1 に答える 1

0

「指定されたキャストは無効です」というエラーが発生します。

したがってInvalidCastExceptionField拡張メソッドで を取得しています。

指定したタイプと一致しない列のタイプを確認する必要があります。次に例を示します。

totLen = r.Field<int>("Quantity") * r.Field<decimal>("Breath") * r.Field<decimal>("Length")

3 つの列のいずれかが指定したものとは異なる型である場合、上記は失敗します。ではないかもしれBreathませんdecimaldouble

質問を編集し、データベースにタイプを入力してください。正しいタイプを特定するのに役立ちます。

于 2013-01-21T12:20:58.067 に答える