我们如何在LINQ中为int列分配null值。 例如
SQLDBDataContext sqlD = new SQLDBDataContext();
var result = from p in sqlD.loadsRadius(Convert.ToInt32(Request["radius"]), .....
如果Request [“radius”]为null则给出错误。
我可以通过此传递0,但我需要更改许多已有的程序。
提前致谢。
Anil
答案 0 :(得分:4)
您需要将int设置为null,例如:
var result = from p in sqlD.loadsRadius(string.IsNullOrEmpty(Request["radius"]) ? (int?)null : int.Parse(Request["radius"]);
答案 1 :(得分:2)
如果异常是FormatException,我的猜测是Request [“radius”]返回的值实际上是字符串“null”。如果Request [“radius”]实际返回null,则Convert.ToInt32()将返回零。您可以尝试使用int.TryParse()来避免异常。
答案 2 :(得分: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)
}
答案 3 :(得分:0)
查看可空类型:Here.
答案 4 :(得分:0)