J'ai créé un petit outil de requête pour Oracle avec fonction d'exportation CSV avec un OracleDataAdapter pour remplir un ensemble de données affiché dans un DataGrid (WinForms). Au début, j'ai utilisé les types .NET (DateTime, decimal, string, ...) mais j'ai eu des exceptions de débordement dans certains cas en raison d'une plus grande précision dans Oracle (NUMBER(30,10)
). Par conséquent, j'ai dû définir la propriété ReturnProviderSpecificTypes = true
dans OracleDataAdapter afin qu'il utilise maintenant les types OracleClient (OracleNumber, OracleBoolean, OracleString, ...). Le problème est que tout est toujours localisé (à l'écran et pendant la sortie CSV) dans les formats en-US lorsque je suis dans la région nl-BE (nous utilisons la virgule comme séparateur décimal et point comme séparateur de milliers). Le séparateur de colonnes dans CSV est un point-virgule btw, donc il n'y a pas d'interférence avec la virgule dans les nombres décimaux.Comment formater OracleNumber de manière générique
Y a-t-il un moyen de remplacer la méthode ToString d'une manière pour ces types? Une sorte d'injection d'un moteur de formatage?
Merci
C'est un outil de requête. Les utilisateurs peuvent entrer n'importe quelle requête. Je n'ai aucun contrôle sur la requête du tout ... – Koen
De la FAQ: Surtout, soyez honnête. Si vous voyez _misinformation_, votez en bas. –
La classe OracleGlobalization fait partie du fournisseur de données Oracle Data Access (que j'ai préféré ne pas utiliser). Cela ne va pas aider de toute façon car cela ferait la même chose que d'envoyer la commande "alter session set NLS_NUMERIC_CHARACTERS = '," "mais j'ai déjà testé ça ... – Koen