Heim >Datenbank >MySQL-Tutorial >Wie behebt man den Fehler „Der Variablenname ‚@' wurde bereits deklariert' im SQL-Abfragebatch?

Wie behebt man den Fehler „Der Variablenname ‚@' wurde bereits deklariert' im SQL-Abfragebatch?

Susan Sarandon
Susan SarandonOriginal
2025-01-01 08:24:11718Durchsuche

How to Fix

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!

Stellungnahme:
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