Variablennamenskonflikt im SQL-Abfrage-Batch
Beim Ausführen von SQL-Abfragen ist es wichtig, die Eindeutigkeit der Variablennamen innerhalb eines Batches oder einer gespeicherten Prozedur sicherzustellen . Der Fehler „Der Variablenname ‚@‘ wurde bereits deklariert“ weist darauf hin, dass mehrere Variablen mit demselben Namen definiert wurden.
Um dieses Problem zu beheben, konzentrieren Sie sich auf den bereitgestellten Codeblock:
private void btn_lock2_Click(object sender, EventArgs e) { // ... 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; 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; // ... } }
Der Fehler liegt im wiederholten Hinzufügen von Parametern innerhalb der Schleife. Verschieben Sie stattdessen die Parametererstellung außerhalb der Schleife:
// Moved outside the loop 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++) { // ... rwd.command.Parameters["@LockState"].Value = 1; rwd.command.Parameters["@card_descr"].Value = txt_desc2.Text; // ... }
Erwägen Sie alternativ, die Parameter innerhalb der Schleife zu löschen:
for (long counter = from; counter <= to; counter++) { rwd.command.Parameters.Clear(); // ... }
Durch Befolgen dieser Empfehlungen können Sie den Fehler beseitigen und sicherstellen die Einzigartigkeit von Variablennamen in Ihren SQL-Abfragen.
Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „Der Variablenname ‚@' wurde bereits deklariert' im SQL-Abfragebatch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!