读取结果的时候,我的存储过程:无效的转换异常从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