با سلام من توی فرمم یه بخش جستجو گذاشتم که از طریق یک فیلد جستجو رو انجام می ده
دفعه اول جستجو خیلی خوب و کامل انجام می شه اما وقتی که جستجوی دوم و سوم و ... رو انجام می دهم پیغام خطای زیر رو می ده

The variable name '@id' has already been declared. Variable names must be unique within a query batch or stored procedure.


کد تابع جستجویی رو که نوشتم رو در پایین می زارم



private void Search_data()
{
string Mystr = "SELECT * FROM Aza where Id=@id";

if (textBox7.Text != "")
{
dataSet21.Clear();
SqlCommand mycomm = new SqlCommand(Mystr, sqlConnection1);

mycomm.Parameters.AddWithValue("@id", textBox7.Text);
sqlConnection1.Open();
SqlDataReader sdr = mycomm.ExecuteReader();
if (sdr.Read())
{
sqlConnection1.Close();

sqlDataAdapter1.SelectCommand.Connection = sqlConnection1;
sqlDataAdapter1.SelectCommand.CommandText = Mystr;
sqlDataAdapter1.SelectCommand.Parameters.AddWithVa lue("@id", textBox7.Text);

dataSet21.Clear();
sqlConnection1.Open();
sqlDataAdapter1.Fill(dataSet21, "Aza");
dataGridView1.Refresh();
sdr.Close();
sqlConnection1.Close();
}
else
{
sqlConnection1.Close();
MessageBox.Show("موردی یافت نشد", "خطای کاربر", MessageBoxButtons.OK, MessageBoxIcon.Information);
Show_data();
}

}
else
MessageBox.Show("کد عضویت را برای جستجو وارد کنید", "خطای کاربر", MessageBoxButtons.OK, MessageBoxIcon.Error);

}