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:
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");
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
Méthode non autorisée
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.

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.