如何实现,从订单明细里,根据“客户,日期”等相关字段,实现主表和明细表的批量录入,主表的“单号”是自增长?类以下面:
假定出库表的主键是出库单号列,而且是自动增量型,那么上述代码是无法正常运行的,因为作为自动增量列,出库单编号是由系统自动生成的,而且是在保存之后生成。
所以我们在保存出库单之后,必须想办法获取自动生成的出库单编号,并赋值给随后新增的出库单明细的出库单编号列,否则二者之间将失去关联。
Foxtable处理这种问题非常简单,因为每次保存新增行之后,Foxtable都会自动访问后台数据库,获取新增行的主键值并写入到主键列中。
修改后的代码如下,留意加粗显示的代码:
Dim cmd As new SQLCommand
cmd.C
Dim ckd As DataTable
Dim ckmx As DataTable
cmd.CommandText = "Selec * From {出库} Where [出库单编号] Is null" '生成一个空出库表
ckd = cmd.ExecuteReader(True) '记得将参数设置为True
Dim cr As DataRow = ckd.AddNew() '增加出库单
cr("出库日期") = Date.today
cr("库管员") = "张三"
ckd.Save() '必须提前保存出库单,以获取自动生成的出库单编号.
cmd.CommandText = "Selec * From {出库明细} Where [出库单编号] Is null" '生成空出库明细表
ckmx = cmd.ExecuteReader(True) '记得将参数设置为True
Dim mr As DataRow = ckmx.AddNew() '增加一个出库明细
mr("出库单编号") = cr("出库单编号") '将自动生成的出库单编号赋值后新增的出库明细.
mr("商品代码") = "HC00101"
mr("数量") = 50
mr = ckmx.AddNew() '再增加一个出库明细
mr("出库单编号") = cr("出库单编号") '将自动生成的出库单编号赋值后新增的出库明细.
mr("商品代码") = "HC00102"
mr("数量") = 100
ckd.Save()
ckmx.Save()