Hallo.
Ich habe ein kleines Problem. Ich möchte über VB2005 auf eine (derzeit noch lokale) MySQL Datanbank zugreifen. Die Verbindung zur Datenbank ist per MySQL-Connection realisiert worden (ist auch Vorraussetzung).
In einem DataGrid werden nun die vorhandenen Datenbanken mit zugehörigen Tabellen ordnungsgemäß angezeigt. Ich kann neue Elemente in die Datenbank einfügen, aber (und jetzt kommts) nicht verändern, aktualisieren oder löschen.
Ich bekomme die Fehlermeldung:
"Dynamische SQL-Generierung für den UpdateCommand/DeleteCommand wird nicht für einen SelectCommand unterstützt, der keine Schlüsselspalteninformationen zurückgibt."
Gut und schön, aber die Schlüsselspalteninfos kommen doch durch den Adapter als Wert zurück, oder denke ich da falsch?
Hier der Code:
Vielleicht kann mir ja einer sagen, wo mein Fehler liegt, ich blick hier echt nicht mehr durch. Vielen Dank für eure Hilfe.
Ich habe ein kleines Problem. Ich möchte über VB2005 auf eine (derzeit noch lokale) MySQL Datanbank zugreifen. Die Verbindung zur Datenbank ist per MySQL-Connection realisiert worden (ist auch Vorraussetzung).
In einem DataGrid werden nun die vorhandenen Datenbanken mit zugehörigen Tabellen ordnungsgemäß angezeigt. Ich kann neue Elemente in die Datenbank einfügen, aber (und jetzt kommts) nicht verändern, aktualisieren oder löschen.
Ich bekomme die Fehlermeldung:
"Dynamische SQL-Generierung für den UpdateCommand/DeleteCommand wird nicht für einen SelectCommand unterstützt, der keine Schlüsselspalteninformationen zurückgibt."
Gut und schön, aber die Schlüsselspalteninfos kommen doch durch den Adapter als Wert zurück, oder denke ich da falsch?
Hier der Code:
Code:
Private Conn As MySqlConnection Private Data As DataTable Private DaAd As New MySqlDataAdapter Private ComBuil As MySqlCommandBuilder 'Verbindung mit DB herstellen, Login, Aufrufen von DB, Tabelle + Inhalt in DataGrid Private Sub tables_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles tables.SelectedIndexChanged Data = New DataTable DaAd = New MySqlDataAdapter("SELECT * FROM " + tables.SelectedItem.ToString(), Conn) ComBuil = New MySqlCommandBuilder(DaAd) DaAd.Fill(Data) ' Aufrufen der Tabellen und deren Inhalt im Datenbereich dataGrid.DataSource = Data End Sub Private Sub updateBtn_Click(ByVal sender As Object, ByVal e As EventArgs) Handles updateBtn.Click Dim changes As DataTable = Data.GetChanges() DaAd.SelectCommand = New MySqlCommand("SELECT * FROM " + tables.SelectedItem.ToString(), Conn) ComBuil = New MySqlCommandBuilder(DaAd) Try DaAd.Update(changes) Data.AcceptChanges() Catch ex As Exception MsgBox("Fehler!", MsgBoxStyle.Information) End Try End Sub
Comment