2008-12-10 1 views
1

Как назначить значение null для столбца int в LINQ. например.Как передать столбец null в int в linq

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

здесь, если Request ["radius"] имеет значение null, дает ошибку.

Я мог бы пройти 0 через это, но мне нужно изменить во многих уже существующих процедурах.

Заранее спасибо.
Anil

ответ

2

Если исключение является FormatException, мое предположение о том, что значение, возвращаемое Request [ «радиус»] фактически строка «нуль». Если Request ["radius"] фактически возвратил null, Convert.ToInt32() вернет ноль. Вы можете попробовать использовать с помощью int.TryParse(), чтобы избежать исключения.

0

как предложено 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

Вы можете использовать ?? operator так:

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

Если запрос [ "радиус"] равен null, он вернет «0».

4

Вы должны СЛУЧАЙ Int в нуль, например:

var result = from p in sqlD.loadsRadius(string.IsNullOrEmpty(Request["radius"]) ? (int?)null : int.Parse(Request["radius"]); 
Смежные вопросы