1

LINQ で int 列に null 値を割り当てるにはどうすればよいですか。例えば。

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

ここで Request["radius"] が null の場合、エラーが発生します。

これを介して 0 を渡すことはできますが、既存の多くの手順を変更する必要があります。

前もって感謝します。
アニル

4

5 に答える 5

4

int を null にする必要があります。たとえば、次のようになります。

var result = from p in sqlD.loadsRadius(string.IsNullOrEmpty(Request["radius"]) ? (int?)null : int.Parse(Request["radius"]);
于 2008-12-12T05:34:42.413 に答える
2

例外が FormatException の場合、Request["radius"] によって返される値は実際には文字列 "null" であると推測されます。Request["radius"] が実際に null を返した場合、Convert.ToInt32() はゼロを返します。例外を回避するために int.TryParse() を使用してみてください。

于 2008-12-10T13:58:23.647 に答える
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)
}
于 2008-12-10T14:09:18.757 に答える
0

あなたは使用できますか?? 次のような演算子:

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

Request["radius"] が null に等しい場合、代わりに "0" を返します。

于 2008-12-12T05:34:14.787 に答える
0

null 許容型を調べてください

于 2008-12-10T14:35:21.467 に答える