se le tabelle sono identiche, potresti anche ricorrere al servizio offerto dalla funzione .merge del dataset.
Altrimenti, io caricherei tutti i record dalla tabella dove potrebbero esserci record da inserire o da aggiornare.
Fatto questo fai un semplice ciclo su ogni datarow nella tabella. All'interno del ciclo controlli se nella tabella nel db esiste gia' la tua chiave primaria. Se esiste mandi la datarow in una funzione di update, altrimenti la mandi in una funzione di insert.
p.s. se nel db la colonna fosse impostata come chiave primaria, basterebbe fare un insert e se ti viene sollevata una eccezione fai automaticamente un update.
pp.ss. visto che buona parte del codice presente nelle funzioni insert e update e' uguale potresti fare un'altra funzione che prepara il command e viene usata dalle due suddette funzioni
es.
codice:
For Each _dr As DataRow In dt.Rows
If isUpdate(CInt(_dr("tuoid"))) Then
updateRow(_dr)
Else
insertRow(_dr)
End If
Next
Private Function isUpdate(ByVal _id As Integer) As Boolean
' codice che se l'id esiste ritorna true altrimenti false
End Function
Private Function updateRow(ByVal _dr As DataRow) As Boolean
' codice per aggiornare il record
End Function
Private Function insertRow(ByVal _dr As DataRow) As Integer
' codice per inserire il record ed eventualmente ritornare l'id appena inserito
End Function