は私が実装しようとしています:DataTableの列の型を変換する方法はありますか。
dtGroupedBy.Compute("sum(POWER)",dvv.RowFilter);
それはエラーの結果:
Invalid usage of aggregate function Sum() and Type: String.
がどのように我々は、その列の型に変換します?
は私が実装しようとしています:DataTableの列の型を変換する方法はありますか。
dtGroupedBy.Compute("sum(POWER)",dvv.RowFilter);
それはエラーの結果:
Invalid usage of aggregate function Sum() and Type: String.
がどのように我々は、その列の型に変換します?
計算方法は、式をサポートし、彼らはあなたが表現の内部で使用することができCONVERT function
をサポートしています。例えば
、あなたは
MyDataTable.Compute("Sum(Convert(your column name, 'Data Type'))")
あなたのコードを使用することはできません...例外: "集合引数の構文エラー:可能な '子'修飾子を持つ単一の列引数が必要です。" – Max
DataTable
の作成方法によって異なります。 SQLからまっすぐな場合は、SQL自体を変更して、POWER列をフェッチする際に変換されるようにしてください。
ただし、値が常に最初の数値である必要がある場合は、データベーススキーマを再訪することを強くお勧めします。可能な場合は、列の種類を変更する方がきれいです。
実際には、私はXML形式のインターネットを介して特定のリンクから取得しているデータからこのテーブルを埋めています –
@Syed:シリアル化されたデータテーブルですか?それとも、それはあなた自身を変換している任意のXMLですか? –
このデータをバイト単位で取得し、それを文字列形式でエンコードした後、XML形式で保存します –
文字列フィールドにSum()
集計関数を使用することはできません。
あなたが
System.Int32
変換を行うがあります集計関数に渡します。 はあなたが行うことができ、次のdtGroupedBy.Compute("sum(CONVERT(" + POWER + ",'System.Int32'))",dvv.RowFilter);
のように列の合計を計算することができ、あなたがエラー –
@Tarunの解釈だ、あなたが取得している正確なエラーをしないで投稿することができ、私は(このエラーを取得しています集計関数Sum()とType:Stringの使用法が無効です。 –
@Deepakソリューションの問題を解決しましたか? – Max