【问题标题】:Nullable object must have a value. VB.NET可空对象必须有一个值。 VB.NET
【发布时间】:2014-06-06 20:46:42
【问题描述】:

我需要帮助。我的程序有问题。这是我在业务逻辑层上的代码。

Function Load_ItemDetails(ByVal ItemID As String) As Items
    Dim objItemEnt As New tblitem
    Dim objitem As New Items
    Try
        Using da = New DataAccess
            objItemEnt = da.Load_ItemDetails(ItemID)
            With objitem
                .ItemCode = objItemEnt.ItemCode
                .ItemName = objItemEnt.ItemName
                .Description = objItemEnt.Description
                .NameofType = objItemEnt.NameofType
                .TypeofPricing = objItemEnt.TypeofPricing
                .OnStock = objItemEnt.OnStock
                .ItemPrice = objItemEnt.ItemPrice
                .DateModified = objItemEnt.DateModified
            End With
            Return objitem
        End Using
    Catch ex As Exception
        Throw
    End Try
End Function

此代码用于我的数据访问层。

Public Function Load_ItemDetails(ByVal ItemCode As String)
    Dim objitem As New tblitem
    Try
        Using entItem = New DAL.systemdbEntities1
            Dim qryUsers = From p In entItem.tblitems
           Where p.ItemCode = ItemCode
           Select p

            Dim luser As List(Of tblitem) = qryUsers.ToList
            If luser.Count > 0 Then
                Return luser.First
            Else
                Return objitem
            End If
        End Using
    Catch ex As Exception
        Throw
    End Try
End Function`

对于我的表示层:

Private Sub Load_Item_Detail(ByVal ItemCode As String)
    objItem = New Items
    Using objLogic = New LogicalLayer
        objItem = objLogic.Load_ItemDetails(ItemCode)
        With objItem
            Me.ItemCodetxt.Text = .ItemCode
            Me.ItemNametxt.Text = .ItemName
            Me.ItemDesctxt.Text = .Description
            Me.ItemTypetxt.Text = .NameofType
            Me.ItemPricetxt.Text = .TypeofPricing
            Me.ItemOnstocktxt.Text = CStr(.OnStock)
            Me.ItemPricetxt.Text = CStr(.ItemPrice)
            Me.TextBox1.Text = CStr(.DateModified)
            Me.ItemCodetxt.Tag = .ItemCode
        End With
    End Using
End Sub`

在我运行后,我收到此错误Nullable object must have a value 帮助我。我被困住了。我不知道该怎么办。我是 n 层架构的新手。

【问题讨论】:

  • 与架构无关。而且您的代码被剪断并没有提供足够的数据来帮助您解决问题。
  • 哪些对象可以为空?
  • 这个.OnStock = objItemEnt.OnStock
  • 我猜objItemEnt 没有被发现,因此为空
  • @eouw0o83hf,这将是一个差异错误 - object not set to instance

标签: vb.net


【解决方案1】:

要访问可空对象的值,请使用对象的.Value。这个可为空的对象还有一个 .HasValue 布尔值,您可以在请求该值之前对其进行检查。更多内容:Nullable Types

 If objItemEnt.OnStock.HasValue Then 
  .OnStock = objItemEnt.OnStock.Value
 End If

【讨论】:

  • 如果它移动了,则意味着这是答案,您应该检查它是否已回答。 “移动”意味着您在其他地方有更多错误
猜你喜欢
  • 1970-01-01
  • 2010-12-26
  • 2012-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-20
相关资源
最近更新 更多