如何将 null 传递给 linq 中的 int 列

发布于 2024-07-09 17:44:46 字数 382 浏览 8 评论 0原文

我们如何在 LINQ 中将 null 值赋给 int 列。 例如。

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

这里如果 Request["radius"] 为 null 会出错。

我可以通过这个传递 0,但我需要更改许多现有的程序。

提前致谢。
安尼尔

How do we assign null value to int column in LINQ.
eg.

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

here if Request["radius"] is null gives an error.

I could pass 0 via this but I need to change in many already existing procedures.

Thanks in advance.
Anil

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

羅雙樹 2024-07-16 17:44:46

您需要将 int 设为 null,例如:

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

You need to case the int to a null, eg:

var result = from p in sqlD.loadsRadius(string.IsNullOrEmpty(Request["radius"]) ? (int?)null : int.Parse(Request["radius"]);
慕烟庭风 2024-07-16 17:44:46

如果异常是FormatException,我的猜测是Request[“radius”]返回的值实际上是字符串“null”。 如果 Request["radius"] 实际上返回 null,则 Convert.ToInt32() 将返回零。 您可以尝试使用 int.TryParse() 来避免异常。

If the exception is a FormatException, my guess is that the value returned by Request["radius"] is actually the string "null". If Request["radius"] actually returned null, Convert.ToInt32() would return zero. You may try using using int.TryParse() to avoid the exception.

节枝 2024-07-16 17:44:46

按照 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)
}

as suggested by 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)
}
神妖 2024-07-16 17:44:46

查看可空类型:此处

Look into nullable types: Here.

只想待在家 2024-07-16 17:44:46

您可以使用 ?? 运算符如下所示:

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

如果Request["radius"]等于null,它将返回“0”。

You could use ?? operator like this:

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

If Request["radius"] equals to null, it will return "0" instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文