Heim > Datenbank > MySQL-Tutorial > Wie behebe ich den SQL-Fehler „Der Variablenname ‚@' wurde bereits deklariert'?

Wie behebe ich den SQL-Fehler „Der Variablenname ‚@' wurde bereits deklariert'?

Linda Hamilton
Freigeben: 2024-12-30 14:08:10
Original
711 Leute haben es durchsucht

How to Resolve the

Der Variablenname „@“ wurde bereits deklariert: Parameterredundanz wird aufgelöst.

Beim Versuch, SQL-Code auszuführen, kann die Fehlermeldung „Der Variablenname „@“ auftreten. „LockState“ wurde bereits deklariert. Variablennamen müssen innerhalb eines Abfragebatches oder einer gespeicherten Prozedur eindeutig sein. Dieses Problem entsteht durch die Einbeziehung mehrerer Instanzen desselben Parameters in eine Schleife.

Um diesen Fehler zu beheben, können Sie entweder die Parameter nach jeder Schleifeniteration löschen oder die Parameter vor der Schleife hinzufügen.

Parameter nach jeder Schleifeniteration löschen

for (long counter = from; counter <= to; counter++) {
    // Clear parameters before adding new ones
    rwd.command.Parameters.Clear();

    string upd = "update card set LockState=@lockstate, card_descr=@card_descr where [cardNumber] = N'{0}'";
    rwd.command.CommandText = upd;
    rwd.command.Parameters.Add(new SqlParameter("@LockState", SqlDbType.NVarChar)).Value = 1;
    rwd.command.Parameters.Add(new SqlParameter("@card_descr", SqlDbType.NVarChar)).Value = txt_desc2.Text;
    rwd.connection.Open();
    rwd.command.ExecuteScalar();
    rwd.connection.Close();
}
Nach dem Login kopieren

Parameter vor der Schleife hinzufügen und darin Werte zuweisen Schleife

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++) {
    string upd = "update card set LockState=@lockstate, card_descr=@card_descr where [cardNumber] = N'{0}'";
    rwd.command.CommandText = upd;

    // Assign values to parameters within the loop
    rwd.command.Parameters["@LockState"].Value = 1;
    rwd.command.Parameters["@card_descr"].Value = txt_desc2.Text;

    rwd.connection.Open();
    rwd.command.ExecuteScalar();
    rwd.connection.Close();
}
Nach dem Login kopieren

Durch die Implementierung einer dieser Lösungen können Sie das Problem der Parameterredundanz effektiv lösen und die erfolgreiche Ausführung Ihres SQL-Codes sicherstellen.

Das obige ist der detaillierte Inhalt vonWie behebe ich den SQL-Fehler „Der Variablenname ‚@' wurde bereits deklariert'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage