【发布时间】:2014-12-05 00:05:46
【问题描述】:
我有以下填充设备对象的代码。当我调用 SubmitChanges 时,记录已成功添加到表中。但是,当我尝试将 EquipmentID 保存到属性设置中时,它会被重置为零。
SaveProperties(Equipment) 'Save the properties to Equipment object
dcVehicle.SubmitChanges() ' Save to database
EquipmentID = Equipment.EquipmentId ' To update ViewState, etc.
Session.Add("EquipmentID", Equipment.EquipmentId)
'Add record to the Employee Assignment table (link to the Equipment table)
Me.AddEquipmentEmployee(Equipment, CInt(Session("divid")))
dcVehicle.SubmitChanges()
'Add a status record for the piece of Equipment
Me.AddEquipmentStatus(Equipment, CInt(Session("divid")))
dcVehicle.SubmitChanges()
在课堂上我有以下代码。当 _Equipment 设置为 Nothing 时,_EquipmentID 会从有效整数重置为零。有趣的方面是我有这个应用程序的另外两个部分(车辆和拖车)具有完全相同的代码(对象名称本身除外)。这两个其他组件按预期工作。当 EquipmentID 更改为零时,在添加好记录后,它最终会在 Equipment 表中创建一个 NULL 记录。第二个“SubmitChanges”调用将此 NULL 记录添加到 Equipment,并将该记录添加到 EquipmentAssignment 表中。
'**********************************************
'* Equipment Section *
'**********************************************
Private _Equipment As Equipment
Private _EquipmentID As Integer = 0
Public Property EquipmentID() As Integer
Get
Integer.TryParse(ViewState("EquipmentID"), _EquipmentID)
Return _EquipmentID
End Get
Set(ByVal value As Integer)
Me.ViewState("EquipmentId") = value
_EquipmentID = value
_Equipment = Nothing
End Set
End Property
Public Property Equipment() As Equipment
Get
If _Equipment Is Nothing Then
_Equipment = dcVehicle.GetEquipment(EquipmentID)
End If
Return _Equipment
End Get
Set(ByVal value As Equipment)
_Equipment = value
If value Is Nothing Then
_EquipmentID = 0
Me.ViewState("EquipmentID") = 0
Else
_EquipmentID = value.EquipmentId
Me.ViewState("EquipmentID") = value.EquipmentId
End If
End Set
End Property
【问题讨论】:
-
第二个代码 sn-p 第 7 行中的“EquipmentId”是否应该与其他代码的大小写不同?
-
不,它不应该在不同的情况下。我还在学习 ASP .Net 并没有意识到 ViewState 是区分大小写的。我进行了更改,现在它正在工作。贾斯汀瑞恩,非常感谢你!!!
标签: asp.net .net vb.net class properties