Comment utiliser les paramètres SQL pour obtenir des données de SQL Server

Je suis en train de travailler sur un projet C# et je suis nouveau sur cette technologie.

Je veux lire des données à partir de SQL Server 2008, et j'écris le code suivant

public User select(string username, string password)
{
    string connection = ConfigurationManager.ConnectionStrings["lawyersDBConnectionString"].ConnectionString.ToString();
    string sql = string.Format("select * from users where userName = '{0}' and password = '{1}'", username, password);

    SqlConnection con = new SqlConnection();            
    con.ConnectionString = connection;

    DataSet ds = new DataSet();
    SqlDataAdapter da = new SqlDataAdapter(sql, con);            

    User user = new User();
    DataRow dr;

    try
    {
            da.Fill(ds);
            dr = ds.Tables[0].Rows[0];

            user.Id = Convert.ToInt16(dr["userID"]);                
            user.FirstName = (string)dr["firstName"];
            user.LastName = (string)dr["lastName"];
            user.Email = (string)dr["email"];
            user.Username = (string)dr["userName"];
            user.Password = (string)dr["password"];
            user.type = (string)dr["type"];

            return user;
    }
    catch (Exception ex)
    {                
            return null;
    }
}//end of select method

Mais j'avais lu un article sur l'injection SQL, et je veux utiliser les paramètres SQL pour éviter cela, mais je ne sais pas comment.

Reportez-vous à la réponse de Steve, c'est la bonne. Mais attention à la façon dont il utilise le using états à s'assurer que tous les objets soient éliminés correctement - c'est important.

OriginalL'auteur Fadi Khalil | 2013-09-11