#vb.net #linq #devexpress #sql-server-2017 #devexpress-gridcontrol
#vb.net #linq #devexpress #sql-server-2017 #devexpress-gridcontrol
Вопрос:
Ошибка гласит: ошибка в [dbo].[PrescriptionPamflet_modified] триггер. Во время выполнения триггера возникла ошибка. Пакет был прерван, и пользовательская транзакция, если таковая имеется, была отменена.
У меня есть следующая сетка DevExpress:
Когда я нажимаю кнопку печати, она должна обновить значения базы данных и распечатать отчет. Когда нет ссылок для обновления, все работает нормально.
-
Примечание: я использую LINQ для установки источника данных сетки и
inPatientID
является переменной prmary key, которую я использую, чтобы определить, с каким пациентом я работаю.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
доступны для редактирования, поскольку вы не можете / не должны обновлять значения первичного и внешнего ключей.
Также тип данных дляPackSize
isdecimal
и тип данных дляQuantity
находитсяinteger
в сетке, а также в самой базе данных SQL Server.
Любая помощь будет оценена. В нескольких результатах, которые я нашел в Интернете, указано, что это несоответствие типов данных, но мои типы данных совпадают точно. Я не хочу использовать SQL для обновления базы данных, поскольку наша компания переходит на использование LINQ для всего.
Комментарии:
1. Ошибка сообщает вам, что в триггере есть проблема; Я бы начал с этого.
2. Вы используете EF?
3. @Larnu Да, я недавно узнал о триггерах и заметил, что возникла проблема с моим скриптом «СОЗДАТЬ ТАБЛИЦУ». Это привело к появлению двух триггеров. Я удалил таблицу, и теперь все хорошо, спасибо.
4. Что такое EF? @Alex.B
Ответ №1:
Были созданы двойные триггеры. Я удалил их все. Удалил таблицу и создал ее снова. Исправлена моя проблема, и с тех пор ее не было.
Комментарии:
1. Однако, если эти триггеры выполняли бизнес-логику, эта логика теперь потеряна.#
2. Пожалуйста, разверните @Larnu. Я совсем новичок в этом
3. Вы удалили таблицу и, следовательно, триггеры. Эти триггеры сейчас не существуют… Они были там по какой-то причине, нет?
4. @Larnu О, да, мой оригинальный скрипт «Создать таблицу» создал дубликаты триггеров. Но теперь они воссоздаются только один раз, и все хорошо.