je veux faire un update de mon champs selon la selection mais la modification ca se fait dans toute la table

SqlDataAdapter da = new SqlDataAdapter("SELECT * from GTA, Solde WHERE MATRICULE_GTA =" +
"(SELECT ID FROM Solde WHERE (GTA.MATRICULE_GTA =ID) AND (ReliqJATT >= nbGTA) AND (ReliqCP ='0')) ", conn);
DataSet ds = new DataSet();
da.Fill(ds, "GTA");

foreach (DataRow r in ds.Tables["GTA"].Rows)
{


int X = Convert.ToInt32(r["MATRICULE_GTA"]);

string uptJATTCP = "UPDATE GTA SET Commentaires_Type_anomalie = 'Ok, modifier en ATT'" +
" WHERE (CODE_SIGMA = 'ITCD010100') AND (Nature = 'IP Lecture') AND (GTA.MATRICULE_GTA = '" + X + "') ";

SqlCommand myCommand2 = new SqlCommand(uptJATTCP, conn);
myCommand2.ExecuteNonQuery();
}