Ik wil een CSV-bestand inlezen, nieuwe records toevoegen aan een MySQL-tabel, en gewijzigde records wijzigen in diezelfde tabel. Het CSV-bestand heeft dezelfde velden als de betreffende tabel.
Ik ben inmiddels zover dat ik een datatable heb met daarin het ingelezen CSV-bestand. Daarnaast open ik via een MySQL-dataset een datatable die de tabel in de MySQL-database representeert. Vervolgens voeg ik nieuwe regels toe aan deze laatste datatable, en wijzig ik wat er volgens de CSV-file gewijzigd moet worden.
Het probleem is nu dat de wijzigingen in de datatable niet worden opgeslagen in de MySQL-tabel. Weet iemand hoe ik dat voor elkaar moet krijgen? Hier volgt een deel van de code (met fake namen voor de database, tabel etc.).
Ik ben inmiddels zover dat ik een datatable heb met daarin het ingelezen CSV-bestand. Daarnaast open ik via een MySQL-dataset een datatable die de tabel in de MySQL-database representeert. Vervolgens voeg ik nieuwe regels toe aan deze laatste datatable, en wijzig ik wat er volgens de CSV-file gewijzigd moet worden.
Het probleem is nu dat de wijzigingen in de datatable niet worden opgeslagen in de MySQL-tabel. Weet iemand hoe ik dat voor elkaar moet krijgen? Hier volgt een deel van de code (met fake namen voor de database, tabel etc.).
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| Dim dtcsv As DataTable = DelimitedTextToTableSR(strDoelPadnaam, ";", True, False) Dim ds As DataSet = New DataSet Dim con As New MySqlConnection("Data Source=dedatabaseserver;User Id='.........';Password='.........';Database='dedatabase'") Dim da As MySqlDataAdapter = New MySqlDataAdapter("select * from tblintermediair", con) da.Fill(ds) ds.Tables(0).PrimaryKey = New DataColumn() {ds.Tables(0).Columns(0)} Dim rowcsv As DataRow Dim rowtabel As DataRow Dim intermediairnummer As Long For Each rowcsv In dtcsv.Rows intermediairnummer = rowcsv("intermediairnummer") rowtabel = ds.Tables(0).Rows.Find(intermediairnummer) If rowtabel Is Nothing Then 'toevoegen ds.Tables(0).ImportRow(rowcsv) Else 'updaten (dit moet ik nog doen) rowtabel("IntermediairNaam") = "test of dit werkt" End If Next If ds.HasChanges Then 'hieronder een paar pogingen om de wijzigingen op te slaan maar dat werkt niet ds.Tables(0).AcceptChanges() ds.AcceptChanges() da.Update(ds) da.Update(ds.Tables(0)) End If |