0

错误状态:[dbo].[PrescriptionPamflet_modified] 触发器中的错误。触发器执行期间引发错误。批处理已中止,并且用户事务(如果有)已回滚。

我有以下 DevExpress 网格:

在此处输入图像描述

当我按下打印按钮时,它应该更新数据库值并打印报告。当没有更新时,一切正常。

  • 注意:我使用 LINQ 设置网格的数据源,它inPatientID是我用来确定我正在处理的患者的主要关键变量。myDB是我的数据上下文

  • 注意:网格的数据源来自BindingSourcePrescriptionItems

这是我调用加载数据的代码:

Dim patientPrescriptions = From prescription In myDB.PrescriptionPamflets
                               Where prescription.PatientID = inPatientID
                               Select prescription

    BindingSourcePrescriptionItems.DataSource = patientPrescriptions

这是打印按钮的代码:

    BindingSourcePrescriptionItems.EndEdit()
    GridViewPerscriptionPamflet.PostEditor()

    Try
        myDB.SubmitChanges()
    Catch ex As Exception
        DevExpress.XtraEditors.XtraMessageBox.Show(ex.Message.ToString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try



    Dim rpt As New XtraReportPrescriptionPamflet(inPatientID)
    rpt.ShowPreview()
    rpt.BringToFront()
  • 注意:只有PackSizeQuantity列是可编辑的,因为您不能/不应该更新主键和外键值。is的数据类型和PackSizeisdecimal的数据类型也在网格以及 SQL Server 数据库本身上。Quantityinteger

任何帮助将不胜感激。我在网上找到的少数结果表明这是数据类型不匹配,但我的数据类型完全匹配。我不想使用 SQL 来更新数据库,因为我们公司正在转向使用 LINQ 来处理所有事情。

4

1 回答 1

0

创建了双重触发器。我把它们都删了。删除表并再次创建它。解决了我的问题,从那以后就没有了。

于 2020-11-20T10:18:22.557 回答