私のSQLベースからDataTable
にデータを取得しようとしていて、一部のフィールドで小数点以下の演算を実行しようとしています。DataTableフィールドを文字列からdoubleに変換します
私はこのnew DataTable();
のように初期化されて、私のDataTable
にstring
秒、int
sおよびdouble
Sを得ることができますので。 デフォルトタイプはに設定されています。これは間違っていますが、それはstring
decimal
です。だから変換する必要はありません。
は私が追加される空のフィールドを防ぐために私DataTable
myRow = 2;
double sum = 0;
foreach (DataRow row in data.Rows)
{
if (row.Field<String>(myRow) != "")
sum = sum + double.Parse(row.Field<String>(myRow), CultureInfo.InvariantCulture.NumberFormat);
}
からフィールドを合計したい想像してみてください。だから私は空の文字列を変換しようとしない。
タイプ 'System.Decimal'のオブジェクトをタイプして 'System.String'をタイプできません。これを変換する「良い」方法がない場合は
は、私は私のDataTable
のみdecimals
を取得するには変更はなく、Decimal
秒で私にFill
をどのように行うことができますか?デフォルトのタイプはdecimal
あるので
更新 、私の周り
sum = sum + (double) row.Field<decimal>(myRow);
1つの作業を行うことができます私のデータベースは、合計をやらせられます。
フィールドが ''System.Decimal''である場合、同じものを文字列にキャストしようとしています –
質問が不明です。これは文字列 'row.Field'として格納されていることを示します。しかし、エラーは小数点として格納されていることを示します。次に、文字列を10進数に変換する必要はありません。 –
_ "または、私の和訳を行うSQLリクエストを行うことができます" _もちろん、あなたはそれを行うことができます。しかし今あなたの質問は何ですか? –