Fehler „Der Variablenname '@' wurde bereits deklariert“ in SQL-Abfragen
Beim Ausführen von SQL-Abfragen ist es wichtig, dies sicherzustellen Variablennamen, die im Abfragebatch oder in der gespeicherten Prozedur deklariert werden, sind eindeutig. Dieser Fehler tritt häufig auf, wenn Variablenersetzung mit dem Präfix „@“ verwendet wird.
Fehlerursache
Im bereitgestellten Code ist die zweite Instanz von „@LockState“ in der Parametersammlung löst den Fehler aus. Dies liegt daran, dass jeder Parameter innerhalb derselben Abfrage einen eindeutigen Namen haben muss.
Lösung
Um diesen Fehler zu beheben, implementieren Sie eine der folgenden Lösungen:
Verwenden rwd.command.Parameters.Clear() nach jeder Schleifeniteration, um die zuvor hinzugefügten Parameter zu entfernen und sicherzustellen, dass die nächste Iteration mit einem neuen Satz beginnt.
for (long counter = from; counter <= to; counter++) { rwd.command.Parameters.Clear(); // ... (remaining code) }
Deklarieren Sie die Parameter außerhalb der Schleife und weisen Sie Werte innerhalb der Schleife zu. Dadurch wird sichergestellt, dass die Parameter nur einmal definiert werden.
rwd.command.Parameters.Add(new SqlParameter("@LockState", SqlDbType.NVarChar)); rwd.command.Parameters.Add(new SqlParameter("@card_descr", SqlDbType.NVarChar)); for (long counter = from; counter <= to; counter++) { // ... (remaining code) rwd.command.Parameters["@LockState"].Value = 1; rwd.command.Parameters["@card_descr"].Value = txt_desc2.Text; }
Durch Befolgen dieser Schritte können Sie sicherstellen, dass in Ihren Abfragen eindeutige Variablennamen verwendet werden, wodurch der Fehler „Der Variablenname ‚@‘ wurde bereits deklariert“ verhindert und sichergestellt wird nahtlose Ausführung.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meinen SQL-Abfragen die Fehlermeldung „Der Variablenname ‚@' wurde bereits deklariert'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!