を行うにはどのように私は、SQLでクエリを持って、 は、以下のコード合計は、変換
です問題は、このコードを実行すると、「指定されたキャストは無効です」というメッセージが表示されます。おそらく、セクション
Sum(z => z.Field<int>("Sub_Key_Value")
には、データベースから文字列として来ているとので、合計
にこれは、そのように起こっているかなりのおかげ
を行うにはどのように私は、SQLでクエリを持って、 は、以下のコード合計は、変換
です問題は、このコードを実行すると、「指定されたキャストは無効です」というメッセージが表示されます。おそらく、セクション
Sum(z => z.Field<int>("Sub_Key_Value")
には、データベースから文字列として来ているとので、合計
にこれは、そのように起こっているかなりのおかげ
Field
がint
への変換を行いませんので。
int sum = dt.Rows.Cast<DatRow>().Sum(r => "Staffing".Equals(r["Parent_Tab"])
&& "BM".Equals(r["Sub_Key_Name"]) ? Convert.ToInt32(r["Sub_Key_Value"]) : 0);
@Saurabh LINQとデータ拡張には小さなオーバーヘッドがあるため、 – Slai
がどのようにLINQで合計を取得するために、任意のアイデアを得るためにintとしてそれをキャストカントデータベース内のSub_Key_Value
は整数型でなくてもよく、そうでなければ整数に変換することはできません。列の型がVarchar
であるとし、上記のクエリを適用します。今度は.Field<string>
を使用してその列の値にアクセスできますが、Sum()
はいくつかの数値があると予想しているため、変換メカニズムを使用して整数に変換する必要があります。ここではあなたのためのサンプルコードは次のとおりです。
.Sum(z => int.Parse(z.Field<string>("Sub_Key_Value"))
これは何について: '和(Z => int.Parse(z.Field( "Sub_Key_Value")))'や '和(Z => Convert.ToInt32(z.Field (「Sub_Key_Value ")))'?フィールド型は 'NVARCHAR'なので、' Sum'を行う前に 'int'への変換が必要です。 –