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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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();
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
Partager