我遇到以下错误
“数据为Null。不能在Null值上调用此方法或属性。 在System.Data.SqlClient.SqlBuffer.get_String()“
当我执行以下命令时。
return objDB.Employees.ToList();
有人建议我,这是“如何使用LINQ从数据库获取空字段的永久解决方案。
当至少有一个字段为空时,我得到了这个错误。
谢谢
我在BLAZOR中这样做。
public List<Employee> GetAllEmployees()
{
try
{
return objDB.Employees.ToList();
}
catch
{
throw;
}
}
答案 0 :(得分:0)
此错误与Blazor无关。
当您的数据库列具有NULL值时,会发生此错误。您可以在数据库或客户端上解决此问题。
在查询中可能会返回null的列上使用ISNULL(column, '')
,例如:
SELECT FirstName, LastName, ISNULL(MiddleName ,'') FROM Employee
在客户端上,如果您使用的是SqlDataReader,则可以使用以下代码提取不为null的值。
while (reader.Read()) {
Console.Write(reader.GetString(reader.GetOrdinal("FirstName")));
// display middle name only of not null
if (!reader.IsDBNull(reader.GetOrdinal("MiddleName")))
Console.Write(" {0}", reader.GetString(reader.GetOrdinal("MiddleName")));
Console.WriteLine(" {0}", reader.GetString(reader.GetOrdinal("LastName")));
}
希望这对您有帮助...