Ecco il codice:
Public Class form
Dim daclienti As New OleDbDataAdapter
Private Sub from_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim cmdclienti As New OleDbCommand("TB_TClienti", conn)
cmdclienti.CommandType = CommandType.TableDirect
Dim cmdordini As New OleDbCommand("Select ID_Cliente from TB_Ordini group by ID_Cliente", conn)
daclienti.SelectCommand = cmdclienti
daclienti.MissingSchemaAction = MissingSchemaAction.AddWithKey
Dim daordini As New OleDbDataAdapter(cmdordini)
daordini.MissingSchemaAction = MissingSchemaAction.AddWithKey
'Creo un commandbuilder per inviare le modifiche al database
'attraverso il dataadapter corrispondente
Dim cmbclienti As New OleDbCommandBuilder(daclienti)
'Aggiungo le tabelle al dataset
daclienti.Fill(dscliord, "TB_Clienti")
daordini.Fill(dscliord, "TB_Ordini")
'PC è la colonna parent (Padre) e CC è la colonna child (Figlia)
Dim pc As DataColumn = dscliord.Tables("TB_Clienti").Columns("ID")
Dim cc As DataColumn = dscliord.Tables("TB_Ordini").Columns("ID_Cliente")
'Creo la relazione con il vincolo di integrità specificando
'la colonna padre e la colonna figlia
Dim fk As ForeignKeyConstraint = New ForeignKeyConstraint("FK", pc, cc)
'Aggiungo il vincolo alla tabella degli ordini
dscliord.Tables("TB_Ordini").Constraints.Add(fk)
'Stabilisco che se elimino un record padre non viene eseguita nessuna azione
'sui record figli e grazie al vincolo di integrità viene generata un'eccezione
fk.DeleteRule = Rule.None
'Popolo il datagridview
dgw.DataSource = dscliord.Tables("TB_Clienti")
End Sub
Private Sub dgw_DataError(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewDataErrorEventArg s) Handles dgw.DataError
Try
dgw.Rows.Remove(dgw.CurrentRow)
Catch ex As Exception
MsgBox("Impossibile eliminare la riga", MsgBoxStyle.Information)
End Try
End Sub
Private Sub SalvaToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalvaToolStripButton.Click
daclienti.Update(dscliord, "TB_Clienti")
End Sub
End Class
Ciao......![]()