J'essaie de déterminer à l'exécution ce qu'est le SqlDbType d'une colonne de table de serveur SQL.Comment puis-je obtenir le SqlDbType d'une colonne dans une table en utilisant ADO.NET?
Y at-il une classe qui peut faire cela dans System.Data.SqlClient ou devrais-je faire la cartographie moi-même? Je peux obtenir une représentation de chaîne de retour
SELECT DATA_TYPE, CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = '{0}' AND TABLE_SCHEMA = '{1}'
AND TABLE_NAME = '{2}' AND COLUMN_NAME = '{3}'
EDIT: Je ne peux pas utiliser SMO que je ne contrôle pas la machine exécutant donc je ne peux pas garantir qu'il sera installé. (Désolé de ne pas faire ce RP clair).
EDIT: En réponse à Joel, j'essaye de faire une fonction que je peux appeler qui me renverra un SqlDBType une fois passée une SqlConnection, un nom de table, et un nom de colonne.
Hé, j'aime ça. – WOPR
C'est vraiment cool, mais est-ce multi-thread sûr? Est-il possible qu'il soit interrompu avec SET FMTONLY ON, et quelqu'un d'autre obtient un jeu d'enregistrements vide? –
Cela ressemble à une bonne solution, mais il y a un avertissement pour ne pas utiliser cette fonctionnalité car il va être supprimé dans les futures versions de SQL Server – Naomi