title: The variable name '@' has already been declared. Variable names must be unique within a query batch or stored procedure. in c#
body: <blockquote>
    <p>The variable name '@LockState' has already been declared. Variable
    names must be unique within a query batch or stored procedure.</p>
  </blockquote>
  
  <p>When I execute this code below, above error comes on my sql parameters on second @LockState.</p>
  
  <pre><code>private void btn_lock2_Click(object sender, EventArgs e)
  {
    rwd.command = new SqlCommand();
    rwd.command.Connection = rwd.connection;
  
    try
    {
      if ((txt2.Text == "")| (txt_desc2.Text == ""))
        appMessages.unCompleteFields();
      else
      {
        long from = long.Parse(this.txt2.Text);
        long to = long.Parse(this.txt3.Text);
        if (from &lt;= to)
        {
          for (long counter = from; counter &lt;= 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;
            rwd.connection.Open();
            rwd.command.ExecuteScalar();
            rwd.connection.Close();
          }
        appMessages.successfulyUpdated();
        }
        else
        {
          appMessages.unsuccessfulyUpdated();
        }
        this.txt1.Text = "";
        this.txt2.Text = "";
      }
    }
    catch (Exception exp) { throw exp; }
    }
  }
  </code></pre>