Ich habe diese MethodeSQL Update-Befehl nicht funktioniert, betroffenen Zeilen 0 zurück
public void Update(int id, string name)
{
OpenConnection();
using (OleDbCommand update = new OleDbCommand("UPDATE Students SET Name = @name WHERE ID = @id", databaseConnection))
{
update.Parameters.AddWithValue("@id", id);
update.Parameters.AddWithValue("@name", name);
MessageBox.Show(update.ExecuteNonQuery().ToString());
}
CloseConnection();
}
Wenn es läuft, bekomme ich 0 Zeilen betroffen. Ich habe versucht, den Befehl in einen Auswahlblock einzuschließen.
using (OleDbCommand select = new OleDbCommand("SELECT * FROM Students WHERE ID = @id", databaseConnection))
{
select.Parameters.AddWithValue("@id", id);
using (OleDbDataReader reader = select.ExecuteReader())
{
using (OleDbCommand update = new OleDbCommand("UPDATE Students SET Name = @name WHERE ID = @id", databaseConnection))
{
update.Parameters.AddWithValue("@id", id);
update.Parameters.AddWithValue("@name", name);
MessageBox.Show(update.ExecuteNonQuery().ToString());
}
}
}
Wenn Sie dies tun, wird das Meldungsfeld noch ausgelöst und gibt 0 Zeilen betroffen. Was mache ich hier falsch?
Sind Sie sicher, dass eine Zeile mit der es 'id' Sie zur Verfügung stellen? Enthält der "Leser" etwas? –
Ist die ID in der Datenbank vorhanden, die Sie in den ID-Parameter eingeben, und setzen Sie die ID-Variable? Überprüfen Sie die SQL innerhalb des Updates vor der Ausführung, wenn Sie können. – ManoDestra
@ RenéVogt Ich setze die ID auf eine Konstante zum testen und es hat immer noch das gleiche Ergebnis. –