Düzeltme: OracleDataReader.GetChars yöntemin .NET Framework 2.0 hatalı veri döndürebilir

Makale çevirileri Makale çevirileri
Makale numarası: 922674 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Microsoft .NET Framework 2.0, OracleDataReader.GetChars yöntemi, okuduğunuz verileri OracleDataReader nesneyi ikinci kez hatalı veri döndürebilir. OracleDataReader.Read yöntemini çağıran ikinci saatten sonra ilk satırdan veri OracleDataReader.GetChars yöntemi döndürebilir.

Çözüm

Düzeltme bilgileri

Desteklenen bir düzeltme Microsoft'tan edinilebilir. Ancak, düzeltmenin yalnızca bu makalede anlatılan sorunu gidermesi amaçlanmıştır. Düzeltmeyi yalnızca bu sorunla karşılaşmış olan sistemlere uygulayın. Bu düzeltmeye ek sınama uygulanabilir. Bu nedenle, bu sorundan ciddi bir şekilde etkilenmiyorsanız, bu düzeltmeyi içeren bir sonraki .NET Framework 2.0 hizmet paketini beklemenizi öneririz.

Bu sorunu hemen çözmek için, düzeltmeyi edinmek üzere Microsoft Müşteri Destek Hizmetleri'ne başvurun. Microsoft Müşteri Destek Hizmetleri'nin telefon numaralarının tam listesi ve destek ücretleriyle ilgili bilgi için, aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/contactus/?ws=support
Not Özel durumlarda, Microsoft Destek Uzmanı özel bir güncelleştirmenin sorununuzu çözümleyeceğini belirlerse, destek aramaları için normalde uygulanan ücretler iptal edilebilir. Ek destek sorularına ve söz konusu güncelleştirme için geçerli olmayan sorunlara normal destek ücretleri uygulanır.

ÖNKOŞULLAR

Herhangi bir önkoşul bulunmamaktadır.

Yeniden başlatma gereksinimi

Bu düzeltmeyi yükledikten sonra bilgisayarı yeniden başlatmanız gerekir.

Düzeltme Değiştirme Bilgileri

Bu düzeltme başka bir düzeltmenin yerini almaz.

DOSYA BİLGİLERİ

Bu düzeltmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yeni dosya özniteliklerine) sahiptir. Bu dosyaların tarihleri ve saatleri Koordinatlı Evrensel Saat'e (UTC) göre listelenir. Dosya bilgilerini görüntülediğinizde yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için <a0></a0>, Denetim Masası'ndaki Tarih ve saat öğesinde saat dilimi sekmesini kullanın.
Bu tabloyu kapaBu tabloyu aç
Dosya AdıDosya SürümüDosya BoyutuTARİHSAAT
Mscordacwks.dll2.0.50727.178801,28008-Tem-200611: 28
Mscorlib.dll2.0.50727.1784,317,18408-Tem-200611: 28
Mscorwks.dll2.0.50727.1785,624,32008-Tem-200611: 27
Normalization.dll2.0.50727.17815.36008-Tem-200611: 28
Normidna.nlpUygulanamaz59,34208-Tem-200611: 28
Normnfc.nlpUygulanamaz45,79408-Tem-200611: 28
Normnfd.nlpUygulanamaz39,28408-Tem-200611: 28
Normnfkc.nlpUygulanamaz66,38408-Tem-200611: 28
Normnfkd.nlpUygulanamaz60,29408-Tem-200611: 28
Sos.dll2.0.50727.178377,34408-Tem-200611: 28
System.data.dll2.0.50727.1782,893,82408-Tem-200611: 28
System.data.oracleclient.dll2.0.50727.178482,30408-Tem-200611: 28

Durum

Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır.

Daha fazla bilgi

Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
824684Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması
OracleDataReader.GetChars yöntemi hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/system.data.oracleclient.oracledatareader.getchars(VS.80).aspx

Sorunu Yeniden Oluşturma Adımları

  1. Microsoft Visual Studio 2005'i başlatın.
  2. Dosya menüsünden Yeni ' yi tıklatın ve sonra Project ' i tıklatın.
  3. Visual C# ' ı tıklatın, Console Application ' ı tıklatın, ConsoleApplication1 <a2>ad</a2> kutusuna yazın ve Tamam ' ı tıklatın.
  4. Program.cs dosyasında aşağıdaki kodu kullanarak, varolan kodunu değiştirin.
    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. Solution ExplorerBaşvurular ' ı sağ tıklatın ve Add Reference</a1>'ı tıklatın.
  6. System.Data.OracleClient ' ı tıklatın .NET sekmesini tıklatın ve sonra Tamam ' ı tıklatın.
  7. Başlat'ı hata ayıklamaHata Ayıkla menüsünde tıklatın.

Özellikler

Makale numarası: 922674 - Last Review: 3 Aralık 2007 Pazartesi - Gözden geçirme: 1.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft .NET Framework 2.0
Anahtar Kelimeler: 
kbmt kbfix kbbug kbhotfixserver kbqfe kbpubtypekc KB922674 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:922674

Geri Bildirim Ver

 

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