Hallo an alle VB.netler,
        
        Ich steh vor einem Problem, dessen Lösung mich nicht ganz erreicht. Nicht mal ünber google, auch wenn ich Hinweise gefunden habe.
        
        Ich fülle ein DataGridView per Abfrage auf eine SQL Server 2008 DB. Diese Abfrage beinhaltet INNER JOINS auf mehrere Tabellen. Das funktioniert auch.
        Wenn ich nun aber Datensatzänderungen in die DB zurückschreiben will, beginnt bei mir der Horror.
        Ein dynamisches UpdateCommand des SqlAdapters kann wohl nicht für DataSources, die aus einer Abfrage auf mehrere Tabellen bestehen, ausgeführt werden. Leuchtet mir bis zu einem bestimmten Punkt ein.
        ABER: wie kann ich nun hier ein UPDATE ausführen, dass die, im DataGridView gemachten Änderungen an Datensätzen auch in die DB zurückgeschrieben werden??
        Ich weiß, evtl. schwer nachzuvollziehen, daher ein Beispiel:
        -----------------------------------------------------------------------------------------------------------------------------------------------------------------
        DBcon.myQueryStr = "SELECT Auftrag.ID, Auftrag.AuNr AS 'Auftrag', Auftrag.Datum, Kunde.Firma AS 'Auftraggeber', Auftrag.vPLZ AS 'von PLZ', Auftrag.vOrt AS 'von Ort', " & _
        "Auftrag.vLand AS 'von Land', Auftrag.nPLZ AS 'nach PLZ', Auftrag.nOrt AS 'nach Ort', Auftrag.nLand AS 'nach Land', Auftrag.Sendung, Auftrag.Gewicht, Einheit.Einheit, " & _
        "Auftrag.FRPreis AS 'Frachtpreis', Untern.Firma AS 'Frachtführer', Auftrag.TUPreis, Auftrag.Rechnung, Auftrag.Gewinn, Auftrag.Kennz AS 'Kennzeichen', " & _
        "Auftrag.DispoNr, Auftrag.ErfGef AS 'Erfasst & Gefaxt', Status.ID AS 'Status'" & _
        "FROM Auftrag"
        DBcon.sqlAdapter.SelectCommand = New SqlClient.SqlCommand(DBcon.myQueryStr, DBcon.con)
        
        'DBcon.sqlAdapter.SelectCommand = New SqlClient.SqlCommand(DBcon.myQueryStr, DBcon.con)
        DBcon.sqlAdapter.Fill(DBcon.sqlSet, "Auftrag")
        'DBcon.myTable = DBcon.sqlSet.Tables("Auftrag")
        'DBcon.mybinding.DataSource = DBcon.myTable
        'GlobVars.uf.Controls("dgvAUF").DataSource = DBcon.myTable
        
        If DBcon.sqlSet.Tables("Auftrag").Rows.Count = 0 Then
        NoDSFound("Transportaufträge")
        Exit Sub
        End If
        GlobVars.uf.Text = "Transportaufträge"
        GlobVars.uf.Show()
        GlobVars.uf.Controls("dgvAUF").DataSource = DBcon.sqlSet.Tables("Auftrag")
        GlobVars.uf.Controls("dgvAUF").DataSource = DBcon.mybinding
        
        GlobVars.uf.Controls("dgvAUF").Columns("ID").Visible = False
        GlobVars.uf.Controls("dgvAUF").Columns(DBcon.sqlSet.Tables("Auftrag").Columns.Count - 1).Visible = False
        GlobVars.uf.Controls("dgvAUF").AllowUserToAddRows = False
        GlobVars.uf.Controls("dgvAUF").ReadOnly = True
        SetStaColors("dgvAUF")
        GlobVars.uf.Controls("lbCOU").Text = GlobVars.uf.Controls("dgvAUF").RowCount
        -----------------------------------------------------------------------------------------------------------------------------------------------------------------
        Falls noch mehr info benötigt wird, einfach sagen.
        Vielen Dank schon mal für die Hilfe
        
        Grüße
        Kai
      
Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge
          SORRY, der Code muss heißen.......
          -----------------------------------------------------------------------------------------------------------------------------------------------------------------
          Private Sub miAUF_TRA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miAUF_TRA.Click
          On Error GoTo fehler
          If DBcon.DBstate = 1 Then
          GlobVars.uf = ufAUF
          If IsNothing(GlobVars.uf.Controls("dgvAUF").DataSource) Then
          DBcon.myQueryStr = "SELECT Auftrag.ID, Auftrag.AuNr AS 'Auftrag', Auftrag.Datum, Kunde.Firma AS 'Auftraggeber', Auftrag.vPLZ AS 'von PLZ', Auftrag.vOrt AS 'von Ort', " & _
          "Auftrag.vLand AS 'von Land', Auftrag.nPLZ AS 'nach PLZ', Auftrag.nOrt AS 'nach Ort', Auftrag.nLand AS 'nach Land', Auftrag.Sendung, Auftrag.Gewicht, Einheit.Einheit, " & _
          "Auftrag.FRPreis AS 'Frachtpreis', Untern.Firma AS 'Frachtführer', Auftrag.TUPreis, Auftrag.Rechnung, Auftrag.Gewinn, Auftrag.Kennz AS 'Kennzeichen', " & _
          "Auftrag.DispoNr, Auftrag.ErfGef AS 'Erfasst & Gefaxt', Status.ID AS 'Status'" & _
          "FROM Auftrag " & _
          "LEFT JOIN Einheit ON Auftrag.FKEinheit = Einheit.ID LEFT JOIN " & _
          "Untern ON Auftrag.FKFRFührer = Untern.UnNr LEFT JOIN " & _
          "Status ON Auftrag.FKStatus = Status.ID LEFT JOIN " & _
          "Kunde ON Auftrag.FKKunde = Kunde.KdNr " & _
          "ORDER BY Auftrag.AuNr"
          DBcon.sqlAdapter.SelectCommand = New SqlClient.SqlCommand(DBcon.myQueryStr, DBcon.con)
          DBcon.sqlAdapter.Fill(DBcon.sqlSet, "Auftrag")
          If DBcon.sqlSet.Tables("Auftrag").Rows.Count = 0 Then
          NoDSFound("Transportaufträge")
          Exit Sub
          End If
          GlobVars.uf.Text = "Transportaufträge"
          GlobVars.uf.Show()
          GlobVars.uf.Controls("dgvAUF").DataSource = DBcon.sqlSet.Tables("Auftrag")
          GlobVars.uf.Controls("dgvAUF").DataSource = DBcon.mybinding
          
          GlobVars.uf.Controls("dgvAUF").Columns("ID").Visible = False
          GlobVars.uf.Controls("dgvAUF").Columns(DBcon.sqlSet.Tables("Auftrag").Columns.Count - 1).Visible = False
          GlobVars.uf.Controls("dgvAUF").AllowUserToAddRows = False
          GlobVars.uf.Controls("dgvAUF").ReadOnly = True
          SetStaColors("dgvAUF")
          GlobVars.uf.Controls("lbCOU").Text = GlobVars.uf.Controls("dgvAUF").RowCount
          Else
          Exit Sub
          End If
          Else
          MsgBox("Es besteht keine Datenbankverbindung!")
          End If
          Exit Sub
          
          fehler:
          MsgBox(Err.Description)
          MsgBox(Err.Number)
          End Sub
          ----------------------------------------------------------------------------------------------------------------------------------------------------------------
        
