Vb.net 存储库记录中发生了奇怪的事情!

Vb.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

亚音速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](RepositoryRecord
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,然后它就工作了!