Verständnisfragen zu Datenbankabfragen
-
Hi,
eigentlich ist es ne ganz simple, auf die ich aber keine befiredigende Antwort gefunden habe (oder zumindest nicht glaube, dass das alles war).
Ich frage mich seit heute ernsthaft, was ich der Unterschied zwischen einem ExecuteReader und einen ExecuteNonQuery?? Oder besser gesagt wofür brauche ich ExecuteNonQuery wirklich?
Okm ich weiss das, nur bei ExecuteReader Ergebnisse hinten raus kommen, mit denen ich was machen kann. Um was abzufragen brauche ich das. Das ist klar. Aber wofür braucht man ernsthaft ExecuteNonQuery? Alle Befehle (wie Update, Delete etc.) funktionieren doch auch genauso wenn ich sie mit ExecteReader absenden...
Also wofür die Unterscheidung? Bekomme ich doch unter bestimmten Umständen Probleme/Fehler wenn ich IMMER ExecuteReader verwende???
Hoffe ihr versteht was ich meine
Gruß
Manuel
-
ExecuteReader liefert dir einen DataReader zurück, was ja auch benötigt wird wenn man eine Abfrage absendet. Dies benötigt man ja aber nicht wenn man Insert Update und andere Befehle absendet. Jetzt kannst du natürlich beide Methoden (ExecuteReader, ExecuteNonQuery) verwenden um einen Modifizierungsbefehl an die Datenbank zu senden, beide werden das selbe machen. Der Unterschied ist: ExecuteReader wird dir nichts zurückliefern, ExecuteNonQuery wird dir die Anzahl der geänderten Zeilen, bzw. die Anzahl der erfolgreichen Änderungen, zurückliefern.