我有一個名爲EarlyHoursStartTime的數據庫列,它聲明爲float。指定的轉換與SQLDataReader上的GetFloat無效
然後,我有一些代碼,我遍歷整個表使用DataReader
SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
while (myReader.Read())
{
cmdInsertLocation.Parameters.AddWithValue("@EarlyHoursStartTime", myReader.GetFloat(44)); <- Error here
}
我得到上面的AddwithValues線的錯誤。
「指定的演員表無效」。
當發生這種情況時,myReader.GetValue(44)顯示的值爲0.0。
我試過各種各樣的事情來解決這個問題就像把一個默認值,而不是如:
if (Convert.ToString(myReader.GetValue(44)) == "0.0")
,但是這應該是不必要的,它不反正工作。
當值爲0.0時,爲什麼會收到無效的轉換異常?數據讀取器讀入的數據庫字段是Float,那麼問題是什麼?
我認爲你應該使用'GetDouble'作爲[SQL float is double](http://msdn.microsoft.com/en-us/library/ms131092%28v=sql .90%29.aspx) – V4Vendetta
@ V4Vendetta似乎已經解決了這個問題。你想把它寫成答案,以便我可以將其標記爲正確的? – iKode
添加爲答覆:) – V4Vendetta