mia stored procedure:eccezione fusione non valido durante la lettura risultato da 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
Nel mio codice C#
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
float monday = (float)reader["Monday"]; // Invalid cast exception
}
Qualcuno può dirmi che cosa ho fatto di sbagliato? Grazie.
È possibile provare Convert.ToFloat (lettore ["Monday"]. ToString()); – Jethro
@Jethro: Questo è un modo piuttosto orribile di farlo però. Quando una conversione fallisce, sostituendola con * due * conversioni (da e verso la stringa) generalmente * non * è una buona idea. –
@Jon Skeet, ha senso, oltre a Convert.ToFloat non esiste. Devi essere più attento. Se Convert.ToFloat esistesse sarebbe meglio fare questo allora. Convert.ToFloat (lettore [ "Lunedi"]); ?? – Jethro