से मेरे संग्रहीत प्रक्रिया परिणाम पढ़ने:अमान्य कलाकार अपवाद है जब 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
मेरी सी # कोड में
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
float monday = (float)reader["Monday"]; // Invalid cast exception
}
किसी मुझे बता सकते हैं कि मैं क्या गलत किया? धन्यवाद।
आप Convert.ToFloat कोशिश कर सकते हैं (पाठक [ "सोमवार"] ToString()।); – Jethro
@ जेथ्रो: हालांकि यह करने का यह एक बहुत ही भयानक तरीका है। जब कोई रूपांतरण विफल हो जाता है, तो इसे * दो * रूपांतरणों (स्ट्रिंग से और स्ट्रिंग) के साथ बदलना आम तौर पर * अच्छा * नहीं है। –
@ जोन स्कीट, जो समझ में आता है, साथ ही कनवर्ट करें। टोफ्लैट मौजूद नहीं है। अधिक सावधान रहना चाहिए। यदि कनवर्ट करें। टोफ्लैट मौजूद था तो यह करना बेहतर होगा। Convert.ToFloat (पाठक [ "सोमवार"]); ?? – Jethro