2008-12-10 8 views
1

Comment affecter une valeur nulle à la colonne int dans LINQ. par ex.Comment puis-je passer null à la colonne int dans linq

SQLDBDataContext sqlD = new SQLDBDataContext(); 
var result = from p in sqlD.loadsRadius(Convert.ToInt32(Request["radius"]), ..... 

ici si Request ["radius"] est null donne une erreur.

Je pourrais passer 0 par ceci mais j'ai besoin de changer dans beaucoup de procédures déjà existantes.

Merci d'avance.
Anil

Répondre

2

Si l'exception est une FormatException, je suppose que la valeur retournée par demande [ « rayon »] est en fait la chaîne « null ». Si Request ["radius"] renvoyait null, Convert.ToInt32() retournerait zéro. Vous pouvez essayer d'utiliser int.TryParse() pour éviter l'exception.

0

comme suggéré par Codechef ..

int radius = -1; 
int.TryParse(Request["radius"],out radius) 
if(radius > 0) // you can remove this clause if you don't want this 
{ 
SQLDBDataContext sqlD = new SQLDBDataContext(); 
var result = from p in sqlD.loadsRadius(radius) 
} 
0

Vous pouvez utiliser ?? operator comme ceci:

Convert.ToInt32(Request["radius"] ?? "0") 

Si demande [ "rayon"] égal à null, il retournera "0" à la place.

4

Vous devez le cas où le int à une valeur nulle, par exemple:

var result = from p in sqlD.loadsRadius(string.IsNullOrEmpty(Request["radius"]) ? (int?)null : int.Parse(Request["radius"]); 
Questions connexes