なぜこれが機能するのでしょうか
int collectionCharge = (int)cmdCheck.ExecuteScalar();
しかし、これは例外を生成します
double collectionCharge = (double)cmdCheck.ExecuteScalar();
System.InvalidCastException: 指定されたキャストは無効です。
なぜ有効ではないのでしょうか。
編集
私は、貨物の価格を取得するクエリから単一の結果を返そうとしています。したがって、小数が必要なため、これをに変換できません。int
したがって、にキャストしようとしていdouble
ます。私はまだasp.netを学んでいるので、これを達成するためのより良い方法があれば、正しい方向に向けてください:)
EDIT 2 SQLで完全なコード...
using (SqlCommand cmdCheck = new SqlCommand("SELECT FREIGHT_PRICE FROM FREIGHT_QUOTER_BELNL_NEW WHERE CUSTOMER_NO = @CUSTOMER_NO AND COUNTRY = @COUNTRY AND ROUND(WEIGHT_FROM,0) < @WEIGHT AND ROUND(WEIGHT_TO,0) >= @WEIGHT AND SHIPVIA = '48';", connection))
{
double collectionCharge = (double)cmdCheck.ExecuteScalar();
FreightAmount = collectionCharge;
}