Тема: Изменение базовой единицы измерения
Добрый день.
Nomenclatures nomenclatures = TCSApp.Nomenclatures[NmkClassifTypeId]; var r = nomenclatures.Locate["NOTE", note1, 0]; if (r) { try { nomenclatures.Set_Nmk_Mesur(8); } catch (Exception e) { Console.WriteLine(e); } } Console.WriteLine("========================================"); var r2 = nomenclatures.Locate["NOTE", note2, 0]; if (r2) { try { nomenclatures.Set_Nmk_Mesur(8); } catch (Exception e) { Console.WriteLine(e); } }
public static void Set_Nmk_Mesur(this Nomenclatures nomenclatures, int mesurId) { nomenclatures.Edit(); nomenclatures.Properties["MESUR_ID"].Value = mesurId; nomenclatures.SaveChanges(); }
SQL Server Error: Exception. Базовая единица измерения уже используется!<KeyErr> [MsSqlNativeError:50000]
Вывод в консоль:
System.Runtime.InteropServices.COMException (0x8000FFFF): SaveChanges failed!
в CSDN.NomenclaturesClass.SaveChanges()
========================================
System.Runtime.InteropServices.COMException (0x8000FFFF): Данная операция не доступна в режиме редактирования
в CSDN.NomenclaturesClass.Edit()
Если запускать Set_Nmk_Mesur только для note2 или сначала для note2, а затем для note1, то у note2 единица измерения меняется. То есть ошибка, которая возникает при изменении единицы измерения note1 влияет как-то на дальнейший ход программы. Как этого избежать?