Ich bin neu in C # und SQL. Von einem Formular aus kann ich nun auf eine Funktion in einer Klasse zugreifen.
Mein Code ist
%Vor% Wenn jetzt ein Datensatz in der Datenbank mit dem angegebenen id
nicht existiert, wird die Anwendung sofort gestoppt. Wie kann ich damit umgehen? Ich möchte eine Nachricht anzeigen, dass die eingegebenen Daten falsch sind und den Benutzer auffordern, weitere Daten einzugeben
ExecuteNonQuery () gibt die Anzahl der Zeilen zurück, die von einer INSERT-, UPDATE- oder DELETE-Anweisung betroffen sind. Wenn Sie die sql-Ausnahme überprüfen müssen, müssen Sie eine try catch-Anweisung in Ihre Funktion einfügen.
%Vor% ExecuteNonQuery
gibt die Anzahl der betroffenen Zeilen zurück - wenn es 0 ist, bedeutet dies, dass keine übereinstimmenden Zeilen zum Aktualisieren vorhanden waren. Das ist natürlich nur dann der Fall, wenn das Update tatsächlich so funktioniert, dass es keine Ausnahme auslöst ... während ich vermute, dass es in Ihrem Fall eine Ausnahme auslöst, die wahrscheinlich nicht ist mit der Zeile zu tun hat nicht in der Datenbank vorhanden. (Es ist möglich, dass es Code gibt, bei dem Sie nicht gezeigt haben, welches von der vorhandenen Zeile abhängt, nicht zu vergessen.)
Zusätzlich:
using
-Anweisungen verwenden, um Ressourcen zuverlässig zu entsorgen. using
zu), und lassen Sie den Verbindungspool die Effizienz Mein rate (bei einer zufälligen Überprüfung) ist, dass das Problem ist, dass Ihre Update-Anweisung versucht, die ID zu aktualisieren, die vermutlich schreibgeschützt wäre. Aber Sie werden das herausfinden, wenn Sie Ihre Ausnahmebehandlung reparieren.
Ich weiß, dass es bereits eine Antwort gibt, aber lass uns etwas anderes versuchen:
%Vor%HasRows gibt einen bool -Wert zurück
Tags und Links sql sql-server c#