Puisque le OleDbParameter
n'utilise pas de paramètres nommés (en raison de sa nature), pourquoi la classe .NET OleDbParameter
s'attend-elle à recevoir un nom? Tous les constructeurs requièrent un nom de paramètre, et je ne suis jamais sûr du nom à donner; mon nom est ok? ou le nom de mes grands-mères?L'obsession du nom OleDbParameter
Répondre
Comme tout le reste dans la programmation, nommez-le quelque chose de significatif dans votre contexte! (nom, ordre, ville, etc.)
Vous utilisez les noms pour accéder à la collection de paramètres par nom alors que dans votre code C#:
OleDbCommand command = new OleDbCommand();
...//Add your parameters with names, then reference them later if you need to:
command.Parameters["name"].Value = "your name or your grandmothers name here";
Cela est également utile lorsque vous utilisez des paramètres OUT pour extraire la valeur après l'exécution de votre déclaration:
OleDbParameter outParam = new OleDbParameter();
outParam.Direction = ParameterDirection.Output;
outParam.DbType = DbType.Date;
outParam.ParameterName = "outParam";
command.Parameters.Add(outParam);
command.ExecuteNonQuery();
DateTime outParam = Convert.ToDateTime(command.Parameters["outParam"].Value);
Bien que le OleDb/fournisseurs Odbc utilisent des paramètres de position au lieu de paramètres nommés -
les paramètres devront être identifiés d'une manière ou d'une autre dans la collection OleDbParameter si vous avez besoin de les référencer. En outre, lorsque l'instruction sql paramétrée est construite, une variable pour chaque paramètre est déclarée et sa valeur respective est affectée. puis utilisé dans l'instruction sql qui est exécutée.
Prenez par exemple:
string sql = "SELECT * FROM MyTable WHERE Field = ?";
OleDbCommand cmd = new OleDbCommmand(sql, sqlConnection);
cmd.Parameters.Add("@FieldValue", OleDbType.Int32, 42);
OleDbDataReader dr = cmd.ExecuteReader();
Le SQL exécuté serait quelque chose comme (ou à proximité, je pense):
DECLARE @FieldValue INT;
SET @FieldValue = 42;
SELECT * FROM MyTable WHERE Field = @FieldValue
on vous recommande d'utiliser un nom de paramètre correspond le mieux au nom de la colonne en cours d'exploitation.
Il existe des interfaces et des usines pour fournir un degré d'indépendance du fournisseur sous-jacent pour l'accès aux données - IDataParameter, DbParameter, DbProviderFactory etc.
À cette fin, tous les paramètres peuvent être nommés, même si le nom n'est pas utilisé par le fournisseur sous-jacent.
- 1. jQuery nom du fichier
- 2. Nom du groupe localisé
- 3. Définition du nom convivial du certificat
- 4. définition du nom de fichier?
- 5. Django: Nom du modèle clash
- 6. Non valide Nom du paramètre
- 7. texte Extrait du nom d'hôte
- 8. Chargement du nom de l'imprimante
- 9. Retour nom du tableau PHP
- 10. Modification du nom de viewstate
- 11. Nom du fournisseur de données/nom de l'utilisateur personnalisé
- 12. Comment faire pour que le nom du fichier de sortie corresponde au nom du dossier
- 13. Regex pour extraire le nom du film du nom de fichier
- 14. Perl: ajout du nom de fichier d'entrée à la sortie du nom de fichier
- 15. Redirection du nom canonique dans Godaddy?
- 16. Modifier le nom du processus en C#?
- 17. Jeton pour le nom du paquet Maven
- 18. Coloriage nom du répertoire dans ksh
- 19. Détermination du nom de l'exécutable C
- 20. .Net Personnalisé Nom du fichier de trace
- 21. Obtention du nom de la fenêtre active
- 22. Obtenez le nom du formulaire ASP.NET
- 23. Marquage du nom de la procédure stockée
- 24. Quel est le nom du motif?
- 25. ASP.NET connectionStringName et Membership Nom du fournisseur
- 26. MDI: nom du fichier sur l'onglet
- 27. Nom du schéma dynamique BIRT 2.2
- 28. NHibernate.Caches.Velocity changer le nom du cache
- 29. nom du serveur en tant que variable
- 30. Nom du flux URL dans ASP.NET MVC
Remarque: 'command.Parameters [" nom "]. Value =" votre nom ou le nom de vos grands-mères ici ";' est __not__ un moyen valide de _add_ un paramètre, uniquement pour changer la valeur d'un _existing_ un. J'ai d'abord déduit qu'il l'ajouterait à la collection, sinon présent. –
Je n'ai jamais dit que c'est comme ça que vous ajoutez un param, j'ai dit (dans le commentaire ci-dessus) d'ajouter vos params en premier, puis de les référencer plus tard, en utilisant la notation en carré –
That's reasonable; Je l'ai d'abord interprété comme étant associé à la ligne ci-dessous, et non au '...'. Ainsi mon avertissement aux futurs lecteurs. Ne pas critiquer; juste clarifier. –