Quand dois-je utiliser Parameters. Add/AddWithValue
? Dans l'exemple MSDN suivant, ils utilisent Parameters.Add
pour int
et Parameters.AddWithValue
pour string
command.Parameters.Add("@ID", SqlDbType.Int);
command.Parameters["@ID"].Value = customerID;
command.Parameters.AddWithValue("@demographics", demoXml);
Quel est le meilleur à utiliser pour datetime
Utilisez Add
si vous voulez rendre tout explicite avec un peu plus de travail. Utilisez AddWithValue
si vous êtes paresseux. AddWithValue
dérivera le type du paramètre de sa valeur, assurez-vous donc que c'est le bon type. Vous devriez par exemple analyser un string
vers int
si c'est le bon type.
Il y a une raison pour éviter Add
, si votre type de paramètre est int
vous devez être prudent avec le surcharge qui prend le nom du paramètre et un objet depuis lors - ne autre surcharge est choisie avec le SqlDbType
- enum .
De remarques (la surcharge de méthode est même obsolete
maintenant):
Soyez prudent lorsque vous utilisez cette surcharge du
SqlParameterCollection.Add
méthode pour spécifier les valeurs des paramètres entiers. Étant donné que cette surcharge prend une valeur de type Object, vous devez convertir la valeur intégrale en type Object lorsque la valeur est nulle ... Si vous n'effectuez pas cette conversion, le compilateur suppose que vous essayez d'appeler leSqlParameterCollection.Add(string, SqlDbType)
surcharge.