讀取結果的時候,我的存儲過程:無效的轉換異常從SqlDataReader的
@UserName nvarchar(64),
AS
BEGIN
SELECT MPU.UserName, SUM(TS.Monday)as Monday //TS.Monday contains float value
FROM dbo.MapTask MT JOIN dbo.MapPU MPU
ON MPU.ID = MT.MPUID
JOIN dbo.TimeSheet TS
ON MT.TMSID = TS.ID
WHERE MT.StartDate = @StartDate_int and MPU.UserName = @UserName
GROUP BY MPU.UserName
END
在我的C#代碼
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
float monday = (float)reader["Monday"]; // Invalid cast exception
}
有人可以告訴我,我做錯了什麼?謝謝。
您可以嘗試Convert.ToFloat(reader [「Monday」]。ToString()); – Jethro
@Jethro:雖然這是一種非常可怕的方式。當轉換失敗時,用* 2 *轉換替換它(字符串和字符串)通常不是一個好主意。 –
@Jon Skeet,這是有道理的,加上Convert.ToFloat不存在。需要更謹慎。如果Convert.ToFloat確實存在,那麼最好這樣做。 Convert.ToFloat(讀取器[ 「星期一」]); ?? – Jethro