我正在做Epicor定制,我尝试在劳动力详细信息表中创建新行,但出现了这个错误
LaborAdapter adapterLabor = new LaborAdapter(this.oTrans);
adapterLabor.BOConnect();
//adapterLabor.GetNewLaborDtl(1109);
bool resultGetNewLaborDtl = adapterLabor.GetNewLaborDtlAttch(1111,217588);;
System.Windows.Forms.MessageBox.Show(resultGetNewLaborDtl.ToString(), "Done");
方法调用
.GetNewLaborDtlAttch(1111,217588)
正在尝试为 LaborHedSeq 1111
和 LaborDtlSeq 217588
添加一条记录,该记录之前已保存到数据库中,并且在当前会话公司中不能重复。
根据您正在尝试创建新的劳动力详细记录的注释,以下是一些需要指出的其他问题,这些问题应该会对您有所帮助:
LaborDtlAttch
与 LaborDtl
不同,可以在 LaborDtl
已存在时使用。LaborAdapter
是一个IDisposable
。将其包装在使用或实现最终/处置范例中以防止内存泄漏非常重要。Update()
方法,否则这些信息不会写回服务器。这里是一个更新的代码示例,用于开始创建新的 labourDtl 记录。
int laborHedSeq = 0;
// TODO Retrieve laborHedSeq from UI or lookup active row as necessary
using(LaborAdapter laborAdapter = new LaborAdapter(this.oTrans))
{
laborAdapter.BOConnect();
laborAdapter.GetNewLaborDtl(laborHedSeq);
Erp.BO.LaborDataSet.LaborDtlRow laborDtl = laborAdapter.LaborData.LaborDtl[laborAdapter.LaborData.LaborDtl.Count - 1];
// TODO Edit additional fields of the new laborDtl row here
laborAdapter.Update();
}