Ich versuche, Werte von einem System.Data.Odbc.OdbcDataReader zu lesen. Das Problem ist, dass es einfach nicht funktioniert. Wenn ich versuche, einen Wert von einer vorhandenen Spalte (Feld) zu erhalten, löst es eine Ausnahme aus. In meinem cae, FieldCount ist 8, aber zum Beispiel, wenn ich lese.IsDBNull (4) aufrufen, es wirft.IDbReader wirft Ausnahmen für vorhandene Spalten
Für Werte Spalte ID von 0 bis 2, ruft es den richtigen Wert ab. Aber Leser [3] zu Leser [7], eine Ausnahme wird ohne Information darüber, was passiert ist, geworfen.
Noch schlimmer, dieser Code (GetName) löst auch die gleiche Ausnahme aus!
for (int ordinal = 0; ordinal < reader.FieldCount; ordinal++)
{
Console.WriteLine("Field {0}: {1}", ordinal, reader.GetName(ordinal));
}
Dies ist die Ausnahme, die ausgelöst wird, wenn ich den Wert für eine bestehende Spalte erhalten:
in System.Data.Odbc.OdbcConnection.HandleError (OdbcHandle hrHandle, RetCode retcode) in System.Data.Odbc.OdbcDataReader.GetColAttribute (Int32 iColumn, SQL_DESC v3FieldId, SQL_COLUMN v2FieldId, handler handler) in System.Data.Odbc.OdbcDataReader.GetSqlType (Int32 i) in System.Data.Odbc.OdbcDataReader.GetValue (Int32 i) in System.Data.Odbc.Odb cDataReader.IsDBNull (Int32 i) in AisgeXmlVrdb.LogicaNegocio.MappingExtensions.SafeGetString (IDataRecord Leser, Int32 colIndex) in AisgeXmlVrdb.LogicaNegocio.MetodosComunes.ObtenerSolicitudesExportacionTodas()
Ich verstehe nicht, was unter dem geschieht Kapuze.
Nur um ein bisschen mehr Informationen hinzuzufügen, ist der ODBC-Treiber, den ich benutze, Apple File Maker.
Was noch seltsamer ist, dass Überprüfung reader[4]
, reader[5]
, ... auch wirft.
Könnte es sein, dass der ODBC-Treiber etwas nicht unterstützt?
Bitte überprüfen Sie die Korrektur. Ich machte einen Fehler. FieldCount ist 8 und die Abfrage umfasst genau 8 Felder, aber Leser [4] zum Beispiel löst eine Ausnahme aus. – SuperJMN