Problème : concordance des caractères avec gridview
Bonjour,
j'ai actuellement un problème avec les jeux de caractères depuis plusieurs jours et je ne vois pas comment le résoudre.
D'un coté, j'ai une base Oracle v8.i, et de l'autre j'ai un gridview qui récupère les données et les affiche.
Jusque la rien d'anormal. Le problème est le type des données, les chaines de caractères dans Oracle sont de type "VarChar2", et lorsque je sélectionne le type String du champ dans le gridview, j'ai l'erreur "ORA-12704: non concordance de jeux de caractères". Si je ne mets aucun type dans les parametres des requetes de sélection du gridview, il arrive à fonctionner sans erreur, mais la comparaison des chaines de caractères échoue. J'ai donc réussi à contourner cela en passant par des requêtes manuelles et en mettant des paramètres spécifiques avec le type AnsiString, ex :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
OracleCommand cmd = new OracleCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "UPDATE ANO SET ETAT = :ETAT2 WHERE ETAT = :ETAT";
OracleParameter param1 = cmd.CreateParameter();
param1.DbType = DbType.AnsiString;
param1.ParameterName = ":ETAT";
param1.Value = a;
cmd.Parameters.Add(param1);
OracleParameter param2 = cmd.CreateParameter();
param2.DbType = DbType.AnsiString;
param2.ParameterName = ":ETAT2";
param2.Value = b;
cmd.Parameters.Add(param2);
OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
con.Open();
cmd.Connection = con;
cmd.ExecuteNonQuery(); |
Le problème, c'est que je veux continuer à utiliser les gridview de facon normal, et donc je voulais savoir si je pouvais configurer quelque chose pour faire concorder les types.
J'ai essayé d'autres types Oracle, mais aucun ne semble mieux, et le type "VarChar" (qui semblerait ne pas poser ce probleme) n'est pas disponible sur cette version d'oracle, d'ou mon choix d'étudier le coté ASP.NET.
Merci d'avance si vous avez des pistes