我想在数据集表上实现sql insert trigger。
我的应用有两个数据集表:
-- Table: Artikli --
IDB - int,autoincrement
Sifra - int, primary key
Naziv - string
Cena - double
PS - string
-- Table: PodArtikli --
IDB - int,autoincrement,primary key
Sifra - int
Naziv - string
Cena - double
Kolicina - int
Ukupno - computed column (Cena*Kolicina)
Pakovanje - double
Jed.Mere - string
PLU - string, unique
Cena_Po_Meri - computed column (1000/Pakovanje * Cena)
这些表通过外键约束相关,其中父表为Artikli
,子表为PodArtikli
列Sifra
。
我希望在Artikli
中添加新行时,在PodArtikli
表格中自动添加Sifra,Naziv
的新行,以及Cena
中添加的行的Artikli
值1}}表。
数据集表中的数据显示在DataGridView中。
在按钮btnizmene
的点击事件中,我有以下代码:
Dim novirow As DataRow = dspetrovac.Artikli.NewRow
novirow("Sifra") = grdpodaci.Item(1, grdpodaci.CurrentRow.Index).Value
novirow("Naziv") = grdpodaci.Item(2, grdpodaci.CurrentRow.Index).Value
novirow("Cena") = grdpodaci.Item(3, grdpodaci.CurrentRow.Index).Value
novirow("PS") = grdpodaci.Item(4, grdpodaci.CurrentRow.Index).Value
答案 0 :(得分:0)
您不能在.NET DataTable
中编写触发器,但可以使用DataTable
事件实现类似的操作。例如,您可以执行RowChanging
事件并更改行,查看是否添加了行,然后使用该行中的数据将新行插入子表
Private Sub Row_Changing(ByVal sender As Object, ByVal e As DataRowChangeEventArgs)
If e.Action = DataRowAction.Add Then
Dim newChild as DataRow = childTable.NewRow()
' Get new row fr here and insert values
newChild("field") = e.Row("field")
. . . . . . .
childTable.Rows.Add(newChild)
End If
End Sub