DataSet reagiert nicht auf Löschen

Nikon the Third

Erfahrenes Mitglied
Hallo Leute.

Ich hänge jetzt schon den ganzen Tag an diesem Problem und finde im Internet nichts darüber, deshalb hier meine Frage:

Ich habe ein DataSet mit einer DataTable namens Connection.

Der DataAdapter für die Verbindung sieht folgendermaßen aus:
Code:
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM [Connection]", connection);
        da.SelectCommand = new SqlCommand("SELECT * FROM [Connection]", connection);
        SqlCommand insertCommand = new SqlCommand();
        insertCommand.CommandText = "INSERT INTO [Connection] ([ID], [name], [comment], [connectOnStartUp], [serialDevice], [isWebServiceConnection], [webServiceUrl]) VALUES (@id, @name, @comment, @connectOnStartUp, @serialDevice, @isWebServiceConnection, @webServiceUrl)";
        insertCommand.Parameters.Add("id", SqlDbType.UniqueIdentifier, 0, "ID");
        insertCommand.Parameters.Add("name", SqlDbType.NVarChar, 50, "name");
        insertCommand.Parameters.Add("comment", SqlDbType.NText, 0, "comment");
        insertCommand.Parameters.Add("connectOnStartUp", SqlDbType.Bit, 0, "connectOnStartUp");
        insertCommand.Parameters.Add("serialDevice", SqlDbType.NChar, 4, "serialDevice");
        insertCommand.Parameters.Add("isWebServiceConnection", SqlDbType.Bit, 0, "isWebServiceConnection");
        insertCommand.Parameters.Add("webServiceUrl", SqlDbType.NText, 0, "webServiceUrl");
        insertCommand.Connection = connection;
        da.InsertCommand = insertCommand;

        SqlCommand deleteCommand = new SqlCommand();
        deleteCommand.CommandText = "DELETE FROM [Connection] WHERE [ID] = @id";
        deleteCommand.Parameters.Add("id", SqlDbType.UniqueIdentifier, 0, "ID");
        deleteCommand.Connection = connection;
        da.DeleteCommand = deleteCommand;

        SqlCommand updateCommand = new SqlCommand();
        updateCommand.CommandText = "UPDATE [Connection] SET [name] = @name, [comment] = @comment, [connectOnStartUp] = @connectOnStartUp, [serialDevice] = @serialDevice, [isWebServiceConnection] = @isWebServiceConnection, [webServiceUrl] = @webServiceUrl WHERE [ID] = @id";
        updateCommand.Parameters.Add("name", SqlDbType.NVarChar, 50, "name");
        updateCommand.Parameters.Add("comment", SqlDbType.NText, 0, "comment");
        updateCommand.Parameters.Add("connectOnStartUp", SqlDbType.Bit, 0, "connectOnStartUp");
        updateCommand.Parameters.Add("serialDevice", SqlDbType.NChar, 4, "serialDevice");
        updateCommand.Parameters.Add("isWebServiceConnection", SqlDbType.Bit, 0, "isWebServiceConnection");
        updateCommand.Parameters.Add("webServiceUrl", SqlDbType.NText, 0, "webServiceUrl");
        updateCommand.Parameters.Add("id", SqlDbType.UniqueIdentifier, 0, "ID");
        updateCommand.Connection = connection;
        da.UpdateCommand = updateCommand;

Nun erstelle ich ein neues DataSet und fülle die Connection Tabelle mit diesem DataAdapter. Wenn ich jetzt eine Connection ändere und da.Update(...) ausführe, funktioniert es. In der Datenbank ist nachher die Zeile geändert.

Lösche ich aber eine Connection aus der Tabelle und führe die Methoden da.Update und dataSet.AcceptChanges erneut aus, tut sich gar nichts. Im DataSet ist die Zeile nicht mehr vorhanden, die Datenbank ist jedoch unverändert.

Wie das? Ich blicke nicht durch... :confused:
 

Neue Beiträge

Zurück