Un prédicat EXISTS est légèrement plus efficace qu'un JOIN si vous souhaitez uniquement des colonnes d'une des tables. De plus - ne jamais injecter des chaînes dans des instructions SQL comme ça - vous ne faites que mendier des attaques SQL Injection, ou des erreurs liées à des plantages (Oui, je sais que c'est une application Forms, mais c'est la même chose. "O'Leary", vous aurez un accident).
SqlCommand cmd = new SqlCommand("SELECT * FROM Guests WHERE EXISTS (SELECT Id FROM Students WHERE Guests.StudentId = Students.Id And Students.name= @name)", MyConn);
cmd.Parameters.Add("@name", SqlDbType.VarChar, 50).Value = byNametextBox.Text;
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
Note: Certaines personnes peuvent faire valoir que « SELECT * » est mauvais, et que vous devriez envisager de spécifier les noms de colonnes individuelles
me semble bon – rball
Je suppose que vous savez ce que l'injection sql est et cet échantillon est juste pour cette question? Sinon, faites une recherche sur ce débordement de pile. – PQW
Injection SQL, quelqu'un? –