我收到以下错误
“数据为空。无法在Null值上调用此方法或属性。在System.Data.SqlClient.SqlBuffer.get_String()”
当我执行以下命令。
return objDB.Employees.ToList();
请有人建议我,“如何使用LINQ从DB获取空字段”的永久解决方案。
当有至少一个字段为空时,我收到此错误。
谢谢
我在BLAZOR做这个。
public List GetAllEmployees(){try {return objDB.Employees.ToList(); } catch {throw; }}
发布于 2019-06-21 10:18:58
这个错误与Blazor无关。
当您的db列具有NULL值时,会发生此错误。您可以在数据库或客户端上解决此问题。
ISNULL(column, '')
在查询中使用可能返回null的列,例如:
SELECT FirstName, LastName, ISNULL(MiddleName ,'') FROM Employee
在客户端上,如果您使用的是SqlDataReader,则可以使用以下代码来提取非空值。
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")));
}
希望这可以帮助...
https://stackoverflow.com/questions/-100007032
复制相似问题