Bonjour à tous,
je programme en "amateur" en C# pour le boulot et je suis confronté à un "casse-tête" en ce qui concerne le codage des caractères accentués dans le format Dbase III.
La connection se fait sans problème avec:
Je dois ajouter un colonne avec des valeurs dans un grand nombre de fichier .dbf (des milliers!) et la méthode "ALTER TABLE matable ADD COLUMN champ" donne une erreur genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 OleDbConnection oConn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\tmp; Extended Properties=dBase III");J'ai donc créé une datatable dans laquelle j'importe les données, j'ajoute une 'row' à cette table avec la bonne valeur et puis j'exporte la datatable vers un nouveau fichier .dbf avec CREATE TABLE et INSERT INTO.Méthode non autorisée
Le gros problème: les caractères accentués (é, è, à ... etc) sont OK dans la datatable (vérifié avec console.write), mais je les retrouve comme , : et autres dans le .dbf en sortie.
J'ai aussi testé la méthode suivante: conversion du .dbf en .xml avec le "command line" d'un freeware (exportizer.exe), mofification du .xml avec une application console en C# pour ajouter le champ et ses valeurs, reconversion du .xml en .dbf avec le même freeware. Même problème: dans le .xml, les é, è, à, ...etc sont bien codés, mais pas dans le .dbf en sortie, malgré des essais avec tous les "encoding=" possibles et imaginables (utf-7, utf-8, iso 88589-1, iso 8859-2, windows-1252, ...etc).
Je bloque vraiment à ce point!!!!
Une âme charitable pourrait elle m'aider?
Un tout grand merci d'avance.
Manu.
Partager