检测到null的LINQ2SQL返回null值并将其转换

时间:2011-07-15 18:41:27

标签: asp.net linq-to-sql

我想检测从LINQ2SQL查询返回的NULL值并将其转换为某些内容 例如:if:

public static String[] getAllStudents(string n)
{
var ret = from p in db.students

select p.st_fname + " " + p.st_mname +" " +p.st_lname ;

string[] st = ret.ToArray<String>();
return st;
}

if(p.st_lname == NULL)来自数据库我想把它转换为“这是空的” 所以,如果我在我的桌子上:

-------------------------------------------------
st_fname|| st_maname || st_lname 
-------------------------------------------------
x       || y         || NULL
-------------------------------------------------

我想应用我上面解释的内容。

2 个答案:

答案 0 :(得分:1)

在那种情况下:

select (p.st_fname ?? "This is empty") + " " + (p.st_mname ?? "This is empty") + 
        " " + (p.st_lname ?? "This is empty");

或者如果它只是可以为null的姓氏:

select p.st_fname + " " + p.st_mname + 
        " " + (p.st_lname ?? "This is empty");

?? operator(null-coalescing运算符)表示取左侧的值,除非它为null,在这种情况下取​​右侧。

答案 1 :(得分:1)

尝试写下类似的内容:

var ret = from p in db.students
select string.Format("{0} {1} {2}",p.st_fname,p.st_mname, p.st_lname==null?"Undefined":p.st_lname);