【发布时间】:2021-03-02 15:02:30
【问题描述】:
错误状态:[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()
- 注意:只有
PackSize和Quantity列是可编辑的,因为您不能/不应该更新主键和外键值。 此外,PackSize的数据类型是decimal,Quantity的数据类型是integer,在网格上以及 SQL Server 数据库本身也是如此。
任何帮助将不胜感激。我在网上找到的少数结果表明这是数据类型不匹配,但我的数据类型完全匹配。我不想使用 SQL 来更新数据库,因为我们公司正在转向使用 LINQ 来处理所有事情。
【问题讨论】:
-
错误告诉你触发器有问题;我会从那里开始。
-
你在使用 EF 吗?
-
@Larnu 是的,我最近了解了触发器,并注意到我的“CREATE TABLE”脚本存在问题。它导致有两个触发器。我把桌子放下了,现在一切都很好,谢谢。
-
什么是 EF? @Alex.B
标签: vb.net linq devexpress sql-server-2017 devexpress-gridcontrol