DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 922674 - Geändert am: Montag, 3. Dezember 2007 - Version: 1.1

Hotfix-Download ist verfügbar
Hotfix-Downloads anzeigen und anfordern
 
 

Auf dieser Seite

Problembeschreibung

In Microsoft .NET Framework 2.0 möglicherweise die OracleDataReader.GetChars -Methode die fehlerhaften Daten zum zweiten Mal zurück, das Sie Daten aus dem OracleDataReader -Objekt lesen. Nachdem Sie die OracleDataReader.Read -Methode aufrufen, zweiten Mal kann die OracleDataReader.GetChars -Methode die Daten aus der ersten Zeile zurückgeben.

Lösung

Hotfix-Informationen

Ein unterstützter Hotfix ist inzwischen von Microsoft. Es ist jedoch nur die Behebung des Problems die in diesem Artikel beschriebene vorgesehen. Wenden Sie es nur auf Systemen, bei die dieses spezielle Problem auftritt. Dieser Hotfix wird unter Umständen zu einem späteren Zeitpunkt weiteren Tests unterzogen. Wenn Sie durch dieses Problem nicht schwerwiegend betroffen sind, empfiehlt Microsoft daher, auf das nächste .NET Framework 2.0 Servicepack warten, das diesen Hotfix enthält wird.

Dieses Problem sofort beheben möchten, wenden Sie sich an Microsoft Support Services, um den Hotfix zu erhalten. Eine vollständige Liste mit Telefonnummern der Microsoft Product Support Services und Informationen über Supportkosten der folgenden Microsoft-Website:
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support)
Hinweis: PLEASE DO NOT TRANSLATE and DELETE THIS PASSAGE. IT DOES NOT APPLY TO GERMANY.

Voraussetzungen

Es gelten keine Voraussetzungen.

Neustartanforderung

Sie müssen den Computer neu starten, nachdem Sie diesen Hotfix installiert haben.

Ersetzte Hotfixes

Dieser Hotfix ersetzt keine anderen Hotfixes.

Dateiinformationen

Die englische Version dieses Hotfixes weist die Dateiattribute (oder höher Dateiattribute), die in der folgenden Tabelle aufgelistet werden. Die Datums- und Uhrzeitangaben für diese Dateien sind in Coordinated Universal Time (UTC) angegeben. Wenn Sie sich die Dateiinformationen ansehen, werden diese Angaben in die lokale Zeit konvertiert. Verwenden Sie die Registerkarte Zeitzone im Element Datum und Uhrzeit in der Systemsteuerung, um die Differenz zwischen UTC und der Ortszeit zu ermitteln.
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeit
Mscordacwks.dll2.0.50727.178801,28008-Jul-200611: 28
Mscorlib.dll2.0.50727.1784,317,18408-Jul-200611: 28
"Mscorwks.dll"2.0.50727.1785,624,32008-Jul-200611: 27
Normalization.dll2.0.50727.17815,36008-Jul-200611: 28
Normidna.NLPNicht zutreffend59,34208-Jul-200611: 28
Normnfc.NLPNicht zutreffend45,79408-Jul-200611: 28
Normnfd.NLPNicht zutreffend39,28408-Jul-200611: 28
Normnfkc.NLPNicht zutreffend66,38408-Jul-200611: 28
Normnfkd.NLPNicht zutreffend60,29408-Jul-200611: 28
Sos.dll2.0.50727.178377,34408-Jul-200611: 28
System.Data.dll2.0.50727.1782,893,82408-Jul-200611: 28
System.Data.OracleClient.dll2.0.50727.178482,30408-Jul-200611: 28

Status

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind.

Weitere Informationen

Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
824684  (http://support.microsoft.com/kb/824684/ ) Erläuterung von Standardbegriffen bei Microsoft Softwareupdates
Weitere Informationen über die OracleDataReader.GetChars -Methode der folgenden Microsoft Developer Network (MSDN)-Website:
http://msdn2.microsoft.com/en-us/library/system.data.oracleclient.oracledatareader.getchars(VS.80).aspx (http://msdn2.microsoft.com/en-us/library/system.data.oracleclient.oracledatareader.getchars(VS.80).aspx)

Schritte zum Reproduzieren des Problems

  1. Starten Sie Microsoft Visual Studio 2005.
  2. Im Menü Datei klicken Sie auf neu und klicken Sie dann auf Projekt .
  3. Klicken Sie auf Visual c# , klicken Sie auf Konsolenanwendung , geben Sie ConsoleApplication1 im Feld Name und klicken Sie dann auf OK .
  4. Ersetzen Sie in der Datei Program.cs den vorhandenen Code durch den folgenden Code.
    using System;
    using System.Text;
    using System.Data;
    using System.Data.OracleClient;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            private static void Main()
            {
                OracleConnection cn = new OracleConnection("Data Source=<DataSourceName>;uid=<UserName>;pwd=<Password>;");
                cn.Open();
    
                DropTable(cn);
                CreateTable(cn);
    
                OracleCommand command = cn.CreateCommand();
                command.CommandText = "SELECT DATA FROM TEST_GETCHARS ORDER BY DATA DESC";
                OracleDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    string getStringText = reader.GetString(0);
                    char[] chs = new char[40];
                    long count = reader.GetChars(0, 0, chs, 0, 40);
                    String s = new String(chs);
                    Console.WriteLine("String from GetString: {2}, String from GetChars: {0}, Character count: {1}", s, count.ToString(), getStringText);
                }
    
                cn.Close();
                cn = null;
            }
    
            private static void CreateTable(IDbConnection connection)
            {
                IDbCommand command = connection.CreateCommand();
                command.CommandText = "CREATE TABLE TEST_GETCHARS (DATA varchar(40))";
                command.ExecuteNonQuery();
    
                command.CommandText = "INSERT INTO TEST_GETCHARS (DATA) VALUES('yes')";
                command.ExecuteNonQuery();
    
                command.CommandText = "INSERT INTO TEST_GETCHARS (DATA) VALUES('no')";
                for (int i = 0; i < 2000; i++)
                command.ExecuteNonQuery();
    
            }
    
            private static void DropTable(IDbConnection connection)
            {
                try
                {
                    IDbCommand command = connection.CreateCommand();
                    command.CommandText = "DROP TABLE TEST_GETCHARS";
                    command.ExecuteNonQuery();
                }
                catch (Exception)
                {
                }
            }
        }
    }
  5. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf Verweise und klicken Sie dann auf Verweis hinzufügen .
  6. Klicken Sie auf die Registerkarte .NET , klicken Sie auf " System.Data.OracleClient und klicken Sie dann auf OK .
  7. Klicken Sie im Menü Debuggen auf Debuggen starten .

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft .NET Framework 2.0
Keywords: 
kbmt kbfix kbbug kbhotfixserver kbqfe kbpubtypekc KB922674 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 922674  (http://support.microsoft.com/kb/922674/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store