2017-09-11 2 views
0

Ma procédure stockée renvoie les données suivantes:Le casting type de valeur « System.Single » a échoué parce que la valeur matérialisée est nulle pour la procédure stockée

SensorNodeUUID   Type val0 val1 val2 
-------------------------------------------------- 
88418344615647248  3 25.77 0  4.23 
88418344615634456  3 NULL NULL NULL 
88432552356623423  2 NULL NULL NULL 
88418344584627440  3 24.77 0  4.29 

J'ai un modèle:

public class EditSensorModel 
    { 
     public List<EditSensorModel> editsensor; 

     public Int64 SensorNodeUUID { get; set; } 
     public int Type { get; set; } 
     public float val0 { get; set; } 
     public float val1 { get; set; } 
     public float val2 { get; set; } 
} 

Dans le contrôleur:

List<EditSensorModel> vendlist = new List<EditSensorModel>(); 
     var vnlist = entities.Database.SqlQuery<EditSensorModel>("exec usp_getsensornode @userid", 
      new SqlParameter("@userid", Convert.ToInt32(Session["Userid"])) 
    ).ToList(); 

        foreach (var item in vnlist) 
        { 
        EditSensorModel temp = new EditSensorModel(); 
        temp.SensorNodeUUID = item.SensorNodeUUID; 
        temp.Type = item.Type; 
        temp.val0 = item.val0 ; 
        temp.val1 = item.val1 ; 
        temp.val2 = item.val2 ; 
        vendlist.Add(temp); 
        } 

Dans le contrôleur, j'obtiens une erreur de stockage des données dans le variab le vnlist. L'erreur à laquelle je suis confronté est la suivante: La conversion en type de valeur 'System.Single' a échoué car la valeur matérialisée est null. Est-ce que quelqu'un sait comment résoudre cette erreur

Répondre

1

Utilisez-vous le flotteur? dans votre modèle.

float? val0; 
float? val1; 
float? val2; 
+0

merci. Ne sais pas comment j'ai raté ça – TheChosenOne94