как передать NULL в столбец int в linq - PullRequest
1 голос
/ 10 декабря 2008

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

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

здесь, если запрос ["radius"] равен нулю, выдает ошибку.

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

Заранее спасибо.
Анил

Ответы [ 5 ]

4 голосов
/ 12 декабря 2008

Вам нужно указать значение int равным нулю, например:

var result = from p in sqlD.loadsRadius(string.IsNullOrEmpty(Request["radius"]) ? (int?)null : int.Parse(Request["radius"]);
2 голосов
/ 10 декабря 2008

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

0 голосов
/ 12 декабря 2008

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

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

Если Request ["radius"] равен нулю, он вернет "0".

0 голосов
/ 10 декабря 2008

Посмотрите на обнуляемые типы: Здесь

0 голосов
/ 10 декабря 2008

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