Исправление: OracleDataReader.GetChars метод может возвращать неверные данные в .NET Framework 2.0

Переводы статьи Переводы статьи
Код статьи: 922674 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Проблема

В Microsoft .NET Framework 2.0OracleDataReader.GetCharsметод может возвращать неверные данные еще раз прочитать данные изOracleDataReaderОбъект. После второй раз, вызовOracleDataReader.Readметод,OracleDataReader.GetCharsметод может возвращать данные из первой строки.

Решение

Сведения об исправлении

Эта проблема может быть решена с помощью исправления, специально выпущенного корпорацией Майкрософт.. однако оно предназначено только для устранения проблемы, описанной в данной статье.. Предлагаемое исправление должно применяться исключительно в системах, где наблюдается описанная проблема.. Исправление может подвергаться дополнительному тестированию.. Таким образом Если вы не подвержены серьезно эту проблему, рекомендуется дождаться следующего пакета обновления платформы .NET Framework 2.0, содержащего это исправление.

Чтобы получить данное исправление и решить проблему немедленно, обратитесь в службу поддержки пользователей Майкрософт.. Полный список телефонов службы поддержки пользователей корпорации Майкрософт и сведения о стоимости поддержки посетите следующий веб-узел корпорации Майкрософт:
http://support.microsoft.com/contactus/?ws=support
Примечание.В отдельных случаях, если специалистом службы технической поддержки Майкрософт будет определено, что решением проблемы является специально выпущенное исправление, оплата, предусмотренная за обращение в службы технической поддержки, может быть отменена.. Дополнительные услуги по технической поддержке, не связанные с данным исправлением, оплачиваются на стандартных условиях..

Предвартельные требования

Предварительные требования отсутствуют..

Необходимость перезагрузки

После установки исправления компьютер необходимо перезагрузить..

Сведения о заменяемых исправлениях

Это исправление не заменяет других исправлений..

СВЕДЕНИЯ О ФАЙЛАХ

Английская версия исправления содержит версии файлов, приведенные в следующей таблице (или более поздние).. Дата и время для файлов указаны во всеобщем скоординированном времени (UTC).. При просмотре сведений о файле, время изменяется на местное.. Чтобы узнать разницу между временем по Гринвичу и местным временем,Часовой поясна вкладке элемента «Дата и время» панели управления.
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файла:Дата:время
Mscordacwks.dll2.0.50727.178801,28008 Июля 2006 г.11: 28
Mscorlib.dll2.0.50727.1784,317,18408 Июля 2006 г.11: 28
Mscorwks.dll2.0.50727.1785,624,32008 Июля 2006 г.11: 27
Normalization.dll2.0.50727.17815,36008 Июля 2006 г.11: 28
Normidna.nlpНеприменимо59,34208 Июля 2006 г.11: 28
Normnfc.nlpНеприменимо45,79408 Июля 2006 г.11: 28
Normnfd.nlpНеприменимо39,28408 Июля 2006 г.11: 28
Normnfkc.nlpНеприменимо66,38408 Июля 2006 г.11: 28
Normnfkd.nlpНеприменимо60,29408 Июля 2006 г.11: 28
Sos.dll2.0.50727.178377,34408 Июля 2006 г.11: 28
System.data.dll2.0.50727.1782,893,82408 Июля 2006 г.11: 28
System.data.oracleclient.dll2.0.50727.178482,30408 Июля 2006 г.11: 28

Статус

Корпорация Майкрософт подтверждает, что это проблема в продуктах Майкрософт, перечисленных в разделе «Применяется к»..

Дополнительная информация

Для получения дополнительных сведений обратитесь к следующей статье Базы Знаний Майкрософт::
824684Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт
Для получения дополнительных сведений оOracleDataReader.GetCharsметод, посетите следующий веб-узел Microsoft Developer Network (MSDN):
.aspx HTTP://msdn2.Microsoft.com/en-us/library/System.Data.OracleClient.oracledatareader.GetChars (VS.80)

Действия по воспроизведению проблемы

  1. Запустите Microsoft Visual Studio 2005.
  2. в менюФайл:выберите пунктСОЗДАТЬ.и выберите командуProject.
  3. затем –В Visual C#затем –Приложение консолиTYPE :ConsoleApplication1В диалоговом окнеИМЯполя, а затем нажмите кнопкуOk..
  4. В файле Program.cs замените существующий код, используя следующий код.
    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. ВВ обозревателе решений, щелкните правой кнопкой мышиСсылкии выберите командуДобавление ссылки.
  6. Перейдите на вкладку.netЩелкнитеSystem.Data.OracleClientи выберите командуOk..
  7. в менюОтладкавыберите пунктНачать отладку.
Примечание. Это ЭКСПРЕСС-ПУБЛИКАЦИЯ, подготовленная непосредственно службой технической поддержки Майкрософт . Сведения, содержащиеся в данном документе, предоставлены в качестве отклика на возникшие проблемы. Из-за срочности в материалах могут быть опечатки, и в любое время и без уведомления в них могут быть внесены изменения. Чтобы получить дополнительные сведения, см. Условия использования.

Свойства

Код статьи: 922674 - Последний отзыв: 27 ноября 2010 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft .NET Framework 2.0
Ключевые слова: 
kbfix kbbug kbqfe kbmt KB922674 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:922674

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com