Comment faire des requêtes paramétrées aider contre les injections SQL?

Dans les deux requêtes 1 et 2, le texte de la zone de texte est inséré dans la base de données. Quelle est la signification de la requête paramétrée ici?

  1. Passant txtTagNumber comme un paramètre de requête

    SqlCommand cmd = new SqlCommand("INSERT INTO dbo.Cars " +"VALUES(@TagNbr);" , conn);
    cmd.Parameters.Add("@TagNbr", SqlDbType.Int);
    cmd.Parameters["@TagNbr"].Value = txtTagNumber.Text;
  2. Conversion txtTagNumber à un entier avant de construire la requête

    int tagnumber = txtTagNumber.Text.ToInt16(); /* EDITED */
    INSERT into Cars values(tagnumber.Text); /* then is it the same? */

Aussi, là, je voudrais utiliser une Expression Régulière pour la validation d'arrêter d'insertion des caractères illégaux.

  • Pourquoi écrire votre propre validation, lorsque les requêtes paramétrées déjà résoudre le problème?
  • En Plus de la validation est dur sur gratuit de saisie de texte, et les requêtes Paramétrées faire le bon "s'enfuir" ( le client fait passer les données directement sur le serveur ).
  • pouvez-vous me donner un exemple de s'ÉCHAPPER?
  • un !non valide! s'échapper serait par exemple de Chaîne.remplacer("'","""). Paramétrée à l'exécution de la commande, utiliser une autre forme de codage qu'il n'est pas nécessaire pour vous de savoir
  • Double Possible de Pourquoi il faut toujours préférer l'utilisation de paramètres dans les requêtes SQL?
InformationsquelleAutor sqlchild | 2011-03-29