首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IsNullOrEmpty不工作

IsNullOrEmpty不工作
EN

Stack Overflow用户
提问于 2012-11-05 13:21:37
回答 6查看 1.8K关注 0票数 0

我的数据库中有一个null值,如果我尝试对它执行任何数学操作,就会出现一个错误。我试着把这个放在我的控制员动作中:

代码语言:javascript
复制
If String.IsNullOrEmpty(item.Tbl_Food.Fiber_TD_g) Then
            item.Tbl_Food.Fiber_TD_g = 0
End If

这是我的领域模型:

代码语言:javascript
复制
Public Property Fiber_TD_g() As Nullable(Of Double)

但是,它说"Nullable对象必须有一个值“。在If String.IsNullOrEmpty(item.Tbl_Food.Fiber_TD_g) Then线路上。如何检查"string“(它是双字符串,而不是字符串)是否为空,并正确地将其默认为零?

编辑:

我在下面尝试了一个建议,我不再在我的控制器中出现错误,而是在我的视图中。它说,"Nullable对象必须有一个值。“在我看来,FiberTotal += item.Tbl_Food.Fiber_TD_g是行的。

代码语言:javascript
复制
Dim food = db.Tbl_Food_Logs.Where(Function(x) x.FLog_Employee_ID = empId And x.FLog_Created_Date >= date2 And x.FLog_Created_Date < tomorrow)

For Each item In food

    If IsDBNull(item.Tbl_Food.Fiber_TD_g) Then
        item.Tbl_Food.Fiber_TD_g = 0
    End If

Next
Return View(food)
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-11-05 13:26:52

顾名思义,String.IsNullOrEmpty是一个字符串操作。如果您通过一个double,它将无法工作。而是检查一下它是否是Is Nothing

代码语言:javascript
复制
If item.Tbl_Food.Fiber_TD_g Is Nothing Then
            item.Tbl_Food.Fiber_TD_g = 0
End If

此操作非常常见,VB有一个快捷方式,称为空合并运算符(2参数If):

代码语言:javascript
复制
item.Tbl_Food.Fiber_TD_g = If(item.Tbl_Food.Fiber_TD_g, 0)

If有两个参数时,如果它不是null,它返回第一个参数,如果它是null,则返回第二个参数。

票数 3
EN

Stack Overflow用户

发布于 2012-11-05 13:24:19

代码语言:javascript
复制
If IsNull(item.Tbl_Food.Fiber_TD_g) Then
        item.Tbl_Food.Fiber_TD_g = 0
End If

代码语言:javascript
复制
If Trim(item.Tbl_Food.Fiber_TD_g) Then
        item.Tbl_Food.Fiber_TD_g = 0
End If
票数 2
EN

Stack Overflow用户

发布于 2012-11-05 13:26:44

您可以将字符串IsNullOrEmpty看作是检查未初始化的字符串变量,而不是检查对象是否为空。我想你想要这样的东西,为了最大限度的安全。

代码语言:javascript
复制
 If Not item Is Nothing Then
        If Not item.TBL_food Is Nothing Then
            If Not item.Tbl_Food.Fiber_TD_g Is Nothing Then
                'do something
            End If
        End If
    End If
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13233018

复制
相关文章

相似问题

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