Hallo allerseits,
verwendetes Datenbanksystem: <oracle database 11g express edition>
ich setze System.Data.Odbc (Version 4.0.0.0) ein, um einfach ein String aus Tabelle auszulesen. Das String ist bspw. "äüßßß" in der Datenbank, die Ausgabe zeigt aber "au???" an. Meine Anwendung ist in VS2017 (Community) entwickelt, und das Betriebssystem Windows7 6.4 English. Nach Internet Posts habe ich NLS_LANG auch nls_session_parameters angepasst, allerdings ohne Erfolg.
Interessanterweise werden Umlaute und ß fehlerfrei ausgelesen, wenn System.Data.OracleClient (auch Version 4.0.0.0) verwendet ist.
Habt ihr solches Problem erlebt? Woran könnte es liegen?
Besten Denk im Voraus!
Hi,
hast du schon
Unicode=true
im ConnectionString probiert?
LG
Danke für die schnelle Antwort!
Ja, habe ich Unicode=true probiert, aber vergebens. Es scheint mir, dass es an assembly System.Data.Odbc oder meiner Implementierung liegt.
string queryString = "select * from mytable";
OdbcCommand command = new OdbcCommand(queryString);
string connectionString = "DSN=mydatasource;UID=myuid;PWD=mypw;Unicode=true";
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
command.Connection = connection;
connection.Open();
command.ExecuteNonQuery();
var reader = command.ExecuteReader();
int subId = reader.GetOrdinal("title");
while (reader.Read())
{
string resul = reader.GetString(subId);
Console.WriteLine("Subject={0}", reader.GetString(subId));
}
}
Du solltest bei Oracle den ODP.NET Provider verwenden und nicht Odbc.
PS: man kann im ConnectionString CharSet=utf8
übergeben.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code