Dynamische SQL-Generierung wird gegen mehrere Basistabellen nicht unterstützt.

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von weltenspalter.

    Dynamische SQL-Generierung wird gegen mehrere Basistabellen nicht unterstützt.

    Hallo Leute,



    ich möchte gerne, eine Access DB über 2 Tabellen Abfragen und mir später im DGV anzeigen lassen. Soweit so gut. Jetzt möchte jedoch auch die im DGV angezeigten Daten manipulieren können, sprich ein UPDATE fahren - nur passiert nach der Ausführung folgenden Codes:

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Chris\Desktop\SysPoint Consulter Entwicklung aktuell\1.mdb;Jet OLEDB:System Database=C:\Users\Chris\Desktop\SysPoint Consulter Entwicklung aktuell\V.mdw;User ID=Admin;Password=;")
    3. Dim cmd As OleDbCommand = New OleDbCommand("SELECT DISTINCTROW Kontakte.[Name Kontaktperson], Kontakte.[Vorname Kontaktperson], Adressen.Steuernummer, Kontakte.Verfuegbarkeit, Kontakte.Preis FROM Adressen INNER JOIN Kontakte ON Adressen.Nummer = Kontakte.Nummer WHERE (((Adressen.Steuernummer) Is Not Null))", con)
    4. con.Open()
    5. myDA = New OleDbDataAdapter(cmd)
    6. 'Automatically generates DeleteCommand,UpdateCommand and InsertCommand for DataAdapter object
    7. Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(myDA)
    8. myDataSet = New DataSet()
    9. myDA.Fill(myDataSet, "MyTable")
    10. DataGridView1.DataSource = myDataSet.Tables("MyTable").DefaultView
    11. con.Close()
    12. con = Nothing
    13. End Sub
    14. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    15. Me.Validate()
    16. Me.myDA.Update(Me.myDataSet.Tables("MyTable"))
    17. Me.myDataSet.AcceptChanges()
    18. End Sub




    Dynamische SQL-Generierung wird gegen mehrere Basistabellen nicht unterstützt.

    Was mach ich jetzt? Unterstützt Access kein zurückschreiben von Daten in mehrere Tabellen??

    Was muss ich jetzt anders machen?
    Viele Grüße Chris

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „weltenspalter“ ()

    Das macht man einfach nicht.

    Anstatt mehreren DB-Tabellen in eine DataTable zusammenzuführen, lädt man die Daten je in getrennte DataTables desselben Datasets.
    Im DataGridview kann man durch ComboBoxColumns Sichten schaffen, die in der Anzeige Werte mehrerer verknüpfter Tabellen vereinen.

    Das sieht dann genauso aus wie eine gejointe Tabelle (isses im Grunde auch), aber da im Dataset die Tables getrennt gehalten sind, kann man sie problemlos auch updaten.

    Gugge MasterDetailView und M_N-RelationView auf Movie-Tuts