错误指出:
[dbo].[PrescriptionPamflet_modified]触发器出错。触发器执行期间引发错误。批处理已中止,用户事务(如果有)已回滚。
我有以下DevExpress网格:
当我按下打印按钮时,它应该更新数据库值并打印报告。
当没有要更新的更改时,一切都正常。
注意:我使用LINQ设置网格的数据源,inPatientID
是我用来确定哪个患者的主键变量。myDB
是我的DataContext
注:网格的数据源来自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
列是可编辑的,不能/不应该更新主键和外键值。
另外,在网格和SQL Server数据库本身上,PackSize
的数据类型是decimal
,Quantity
的数据类型是integer
。
任何帮助将不胜感激。我在网上找到的几个结果表明,这是一个数据类型不匹配,但我的数据类型完全匹配。我不想使用SQL来更新数据库,因为我们公司正在转向使用LINQ来处理所有事情。
1条答案
按热度按时间ruarlubt1#
有两个触发器。我都删了。已删除表并重新创建。修复了我的问题,从那以后就没有了。