首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >数据是空的。无法在Null值上调用此方法或属性。在System.Data.SqlClient.SqlBuffer.get_String()

数据是空的。无法在Null值上调用此方法或属性。在System.Data.SqlClient.SqlBuffer.get_String()
EN

Stack Overflow用户
提问于 2019-06-21 00:23:48
回答 1查看 0关注 0票数 0

我收到以下错误

“数据为空。无法在Null值上调用此方法或属性。在System.Data.SqlClient.SqlBuffer.get_String()”

当我执行以下命令。

return objDB.Employees.ToList();

请有人建议我,“如何使用LINQ从DB获取空字段”的永久解决方案。

当有至少一个字段为空时,我收到此错误。

谢谢

我在BLAZOR做这个。

public List GetAllEmployees(){try {return objDB.Employees.ToList(); } catch {throw; }}

EN

回答 1

Stack Overflow用户

发布于 2019-06-21 10:18:58

这个错误与Blazor无关。

当您的db列具有NULL值时,会发生此错误。您可以在数据库或客户端上解决此问题。

ISNULL(column, '')在查询中使用可能返回null的列,例如:

代码语言:javascript
复制
SELECT FirstName, LastName, ISNULL(MiddleName ,'') FROM Employee

在客户端上,如果您使用的是SqlDataReader,则可以使用以下代码来提取非空值。

代码语言:javascript
复制
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")));
         }

希望这可以帮助...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档