Vb.net 存储库记录中发生了奇怪的事情!
亚音速2.2。我使用存储库记录模式,表“appointment”的appointmentId为自动递增int 我试图更新它,但当我用完全不同的东西更新字段时,脏列总是零,我得到一个异常 System.NullReferenceException:对象引用未设置为对象的实例。在A:\Source\VS2008\Web\Apps\janji\janji\Classes\DAL\AllStructs.vb:janji.WebForm4.SaveData()中的第197行中,在janji.janji.Data.DB.Update[T](RepositoryRecordVb.net 存储库记录中发生了奇怪的事情!,vb.net,subsonic,Vb.net,Subsonic,亚音速2.2。我使用存储库记录模式,表“appointment”的appointmentId为自动递增int 我试图更新它,但当我用完全不同的东西更新字段时,脏列总是零,我得到一个异常 System.NullReferenceException:对象引用未设置为对象的实例。在A:\Source\VS2008\Web\Apps\janji\janji\Classes\DAL\AllStructs.vb:janji.WebForm4.SaveData()中的第197行中,在janji.janji.D
1项,字符串用户名)的亚音速.DataService.ExecuteQuery(QueryCommand cmd)的亚音速在A:\Source\VS2008\Web\Apps\janji\janji\UI\Appt.aspx.vb中:第343行
这是我的密码:
Try
If Appointment.AppointmentId > 0 Then
Appointment.AddressName = uxHotel.Text
Appointment.Address = uxAddress.Text
Appointment.AppStartTime = Date.Parse(uxApptDate.SelectedDate.Value.ToShortDateString + " " + uxApptStartTime.SelectedDate.Value.ToShortTimeString)
Appointment.ApptEndTime = Date.Parse(uxApptDate.SelectedDate.Value.ToShortDateString + " " + uxApptEndTime.SelectedDate.Value.ToShortTimeString)
Appointment.Completed = uxCOmpleted.Checked
Appointment.DropNumber = uxDropNum.Text
Appointment.Total = 0
Appointment.EmployeeId = 0
Appointment.Model = uxModel.Text
Appointment.DropAmount = Decimal.Parse(uxDropAmount.SelectedValue)
Appointment.RoomNumber = uxRoom.Text
'If Appointment.DirtyColumns.Count > 0 Then
Janji.Data.DB.Update(Of Janji.Data.Appointment)(Appointment)
'End If
End If
Catch ex As Exception
_ErrorMessage = ex.ToString
RetVal = False
lErrors.Text = _ErrorMessage
lErrors.Visible = True
End Try
您正在使用我们提供的结构,而不是实例化约会对象。在这里执行所有操作,但创建约会实例并为其分配值。然后将该实例传递给回购协议。我不太明白您在这里做什么。你能再总结一下吗?这是一个实例还是您正在使用结构?在我看来,您使用的是结构,而不是实例化对象。我按如下方式创建它:_Appointment=New SubSonic.Select().From(Janji.Data.Tables.Appointment)。其中(Janji.Data.Appointment.Columns.AppointmentId).IsEqualTo(CallLog.ApptId).ExecuteSingle(Janji.Data.Appointment的)()另外:脏列始终为0,即使在设置属性之后也是如此。如果我标记为“markClean”,则更新不会失败,但不会更新任何内容。我找到了修复程序。在设置属性之前添加Appointment.MarkOld和.MarkClean,然后它就工作了!