Lors de l'accès à un objet dans un DataTable récupéré à partir d'une base de données, existe-t-il des raisons de ne pas convertir l'objet en votre type souhaité ou y a-t-il des raisons d'utiliser convert? Je sais que la règle est lancée lorsque nous connaissons le type de données avec lequel nous travaillons et que nous convertissons lorsque nous essayons de changer le type de données pour qu'il ne le soit pas. En supposant que nous sachions quel type de données est stocké dans une colonne, la conversion semble appropriée, mais existe-t-il des problèmes de type DB qui nous empêchent de nous en remettre?Convertir ou convertir lors de la récupération des données d'une base de données?
Répondre
Je lancerais toujours, pour les raisons que vous dites. Les gotchas Je suis au courant que vous devez gérer sont les suivants:
Vous devez évidemment être capable de gérer DBNulls (par exemple en testant avec Convert.IsDBNull)
Dans le cas de ExecuteScalar I crois que vous devez vérifier null ainsi que DBNull.
Les serveurs SQL @@ IDENTITY et SCOPE_IDENTITY retournent des valeurs numériques (décimales) même pour les colonnes déclarées comme INT. Dans ce cas, vous pouvez lancer deux fois la valeur "(int) (décimale)" ou la gérer dans le code T-SQL, par exemple: .
INSERT INTO MyTable ... SELECT AutoIdColumn DE MyTable OU AutoIdColumn = SCOPE_IDENTITY()
ou
INSERT INTO MyTable ...
SELECT CAST(SCOPE_IDENTITY() AS INT)
Les deux CAST
et CONVERT
sont utilisés explicitement pour convertir une expression d'un type de données à un autre. Toutefois, avec CONVERT
, vous pouvez également spécifier le format au format.
Syntaxe CAST:
CAST (expression AS data_type [ (length) ])
Syntaxe CONVERT:
CONVERT (data_type [ (length) ] , expression [ , style ])
Lorsque retreiving de SGBDR vous devez laisser le pilote de base de la poignée entre marshalling type natif et demandé. CAST est sanctionné par des normes SQL et fonctionne sur le plus grand nombre de plates-formes RDBMS.
CONVERT est disponible sur moins de plateformes.
Si vous avez des concentations multi-plates-formes, CONVERT ne doit être utilisé que pour des cas spéciaux tels que le formatage personnalisé qui ne peut pas être effectué avec CAST.
- 1. convertir des données en base de données mysql
- 2. Convertir la base de données existante en projet de base de données
- 3. Récupération HyperSQL Base de données
- 4. Convertir la base de données SDF en MDF
- 5. Comment convertir accdb en une base de données postgres
- 6. Android: Récupération des données de la question de la base de données
- 7. Quelle est la meilleure façon de convertir une base de données mysql en une base sqlite?
- 8. Comment convertir une base de données MySQL en XML?
- 9. Convertir base de données Access à 97 Format
- 10. Comment convertir un fichier XML en base de données?
- 11. Récupération de la base de données de MySQL vers SQLite
- 12. Convertir des données mysql à partir de majuscules
- 13. Récupération de caractères corrompus dans la base de données
- 14. Récupération de données
- 15. Récupération des commentaires d'une base de données PostgreSQL
- 16. convertir la table de base de données en fichier de schéma XML
- 17. jQuery de base/données ou des attributs personnalisés (données-Driven)
- 18. Question d'héritage - récupération des données du fichier de base de données Access et de SQL Express
- 19. Gestion des données de hiérarchie dans la base de données
- 20. Convertir tableau POST Retour à POST des données de chaîne
- 21. Problème lors de la lecture des données nchar à partir de la base de données Oracle
- 22. Comment convertir des données efficacement dans DataTable dans ADO.Net
- 23. erreur lors de la suppression de la base de données
- 24. Comment puis-je convertir du texte formaté sur une page Web et dans la base de données RTF ou doc
- 25. Configurer des relations lors de l'importation de données de base?
- 26. Récupération des données de tables transparentes
- 27. Emplacement du fichier de base de données SQL physique (récupération)?
- 28. comment extraire des données de la base de données?
- 29. Besoin d'un outil pour convertir la base de données postgres en mysql
- 30. Chargement des données dans la base de données distante