Je viens de relire ton code, et j'ai remarqué un petit problème :
if((x1 == dataGridView1
[1,i
].
Value.
ToString())) && x2 ...
Il semblerait qu'il y ai trop de parenthèses droites dans ton if...
Mais ça me semblerait bizarre que ton compilateur n'ai rien dit à ce sujet...
Autre chose :
Aux cours, on nous conseille d'utiliser la méthode Equals pour comparer 2 strings.
Essaye un peu :
if((x1.Equals((String)dataGridView1
[1,i
].
Value) && x2.Equals((String)dataGridView1
[4,i
].
Value)))
Ou bien utiliser le .ToString au lieu de caster, mais ça ne changerait pas grand chose, je pense 