Guten Abend,
Bin neu hier. Programmiere schon länger aber neu in VB net.
Wir haben eine Auftragsverwaltung mit SQL Datenbank (SAGE), auf die ich ausschließlich Lesezugriff habe.
Ich möchte offene Aufträge in eine andere Datenbank (XAMPP) kopieren, so dass die Bearbeiter Felder ändern und ergänzen können.
Auslesen der offenen Aufträge in ein DataTable / DataGridView funktioniert.
Die Werte in ein Array übertragen funktioniert.
Beim Schreiben der Datensätze in die XAMPP wird ein Datensatz korrekt geschrieben, dann erscheint obige Fehlermeldung "The connection has been disposed".
Hier die Routine für die beiden Zugriffe:
Und hier noch die Routine, die die SQL Befehle erstellt und übergibt:
Wenn ich das Form schließe und neu öffne, kann ich wieder einen Datensatz anfügen.
Ansonsten wird die exception in Zeile 44 aufgerufen.
Schön wäre, wenn der Befehl zum Schreiben von 0 bis OpenOrders-1 durchlaufen würde.
Vielen Dank schon mal für eure Hilfe und viele Grüße
Stefan Esser
Bin neu hier. Programmiere schon länger aber neu in VB net.
Wir haben eine Auftragsverwaltung mit SQL Datenbank (SAGE), auf die ich ausschließlich Lesezugriff habe.
Ich möchte offene Aufträge in eine andere Datenbank (XAMPP) kopieren, so dass die Bearbeiter Felder ändern und ergänzen können.
Auslesen der offenen Aufträge in ein DataTable / DataGridView funktioniert.
Die Werte in ein Array übertragen funktioniert.
Beim Schreiben der Datensätze in die XAMPP wird ein Datensatz korrekt geschrieben, dann erscheint obige Fehlermeldung "The connection has been disposed".
Hier die Routine für die beiden Zugriffe:
VB.NET-Quellcode
- Imports MySql.Data.MySqlClient
- Public Class DualControl
- 'Steuert den gleichzeitigen Zugriff auf XAMPP MySQL und SAGE Server
- Public DualConnS As New MySqlConnection
- Public DualConnectionStringS As String = "server=127.0.0.1;Port=4136;database=mand3;uid=nurlesen;pwd=nurlesen%1"
- Public DualcmdS As New MySqlCommand
- Public DualDBDAs As New MySqlDataAdapter
- Public DualDBDTs As New DataTable
- Public DualConnX As New MySqlConnection
- Public DualConnectionStringX As String = "server=127.0.0.1;Port=3306;database=intranet;uid=root"
- Public DualcmdX As New MySqlCommand
- Public DualDBDAX As New MySqlDataAdapter
- Public DualDBDTX As New DataTable
- Public Sub DualExecQueryS(MYSQLQuery As String)
- DualConnS.ConnectionString = DualConnectionStringS
- DualcmdS.Connection = DualConnS
- Using DualConnS
- Try
- DualConnS.Open()
- DualcmdS.CommandText = MYSQLQuery
- DualDBDAs = New MySqlDataAdapter(DualcmdS)
- DualDBDTs = New DataTable()
- DualDBDAs.Fill(DualDBDTs)
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- End Try
- DualConnS.Close()
- End Using
- End Sub
- Public Sub DualExecQueryX(MYSQLQuery As String)
- DualConnX.ConnectionString = DualConnectionStringX
- DualcmdX.Connection = DualConnX
- Using DualConnX
- Try
- DualConnX.Open()
- DualcmdX.CommandText = MYSQLQuery
- DualDBDAX = New MySqlDataAdapter(DualcmdX)
- DualDBDTX = New DataTable()
- DualDBDAX.Fill(DualDBDTX)
- Catch ex As Exception
- MessageBox.Show(ex.Message & " Why")
- End Try
- DualConnX.Close()
- End Using
- End Sub
Und hier noch die Routine, die die SQL Befehle erstellt und übergibt:
VB.NET-Quellcode
- Private Sub ImportExec_Click(sender As Object, e As EventArgs) Handles ImportExec.Click
- For n = 0 To OpenOrders - 1
- Dim OrdersExport As String = "insert into sg_auf_fschrift (sg_auf_fschrift_pk, Aufnr, aufbez, ltermin, fldc03, name)
- values ('" & ActPK(n) & "','" & ActAU(n) & "','" & ActBZ(n) & "','" & ActLT(n) & "','" & ActF3(n) & "','" & ActNM(n) & "')
- On duplicate key update ltermin = '" & ActLT(n) & "';"
- Dualx.DualExecQueryX(MYSQLQuery:=OrdersExport)
- Next
- End Sub
Wenn ich das Form schließe und neu öffne, kann ich wieder einen Datensatz anfügen.
Ansonsten wird die exception in Zeile 44 aufgerufen.
Schön wäre, wenn der Befehl zum Schreiben von 0 bis OpenOrders-1 durchlaufen würde.
Vielen Dank schon mal für eure Hilfe und viele Grüße
Stefan Esser
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Steve4pvd“ ()