爲什麼將這項工作鑄造的ExecuteScalar()結果C#
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;
}
因爲它返回一個int,不返回一個double? – 2013-03-15 15:06:47
我不知道,但雙重演員可能會讓你過去:'(double)(int)cmdCheck.ExecuteScalar()'。 – neontapir 2013-03-15 15:07:05
'-1'ExecuteScalar不會返回'double' [MSDN Execute Scalar](http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand.executescalar.aspx) – MethodMan 2013-03-15 15:09:39