FIX: 的 OracleDataReader.GetChars 方法可能不正確的資料在中傳回.NET Framework 2.0

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

922674
本文已封存。本文係以「現狀」提供且不會再更新。
徵狀
在 Microsoft.NET Framework 2.0 中,OracleDataReader.GetChars 方法可能傳回不正確的資料從 OracleDataReader 物件讀取資料的第二次。 您呼叫 OracleDataReader.Read 方法在第二個時間之後, OracleDataReader.GetChars 方法可能傳回從第一列的資料。
解決方案

Hotfix 資訊

一個支援的 Hotfix 現在已可從 Microsoft取得。不過,它只修正本文中所述此問題。請只在發生此特定問題的系統上套用。此 Hotfix 可能會接受其他測試。因此,如果您不會嚴重影響這個問題,我們建議您等候下一個的.NET Framework 2.0 Service Pack 包含此 Hotfix。

如果要立即解決這個問題,請聯絡 Microsoft 客戶支援服務 」,以取得該 Hotfix。如需 Microsoft 客戶支援服務電話號碼及支援成本的相關資訊的完整清單,請造訪下列 Microsoft 網站]:附註 在特殊情況下通常會因支援電話所產生的費用可能就不收取如果 Microsoft 支援人員認為某特定更新程式可以解決您的問題。平常的支援成本將會套用到其他支援問題是所做不限定特定有問題的更新程式。

必要條件

沒有先決條件都是必要的。

重新啟動需求

套用此 Hotfix 之後,您必須重新啟動電腦。

Hotfix 取代資訊

此 Hotfix 不會取代任何其他的 Hotfix。

檔案資訊

此 Hotfix 的英文版在檔案屬性 (或更新版本的檔案屬性) 如下列表格中所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用在 [日期及時間中項目控制台中的 [時區] 索引標籤]。
檔案名稱檔案版本檔案大小日期時間
Mscordacwks.dll2.0.50727.178801,2802006 年七月 08 日11: 28
Mscorlib.dll2.0.50727.1784,317,1842006 年七月 08 日11: 28
Mscorwks.dll2.0.50727.1785,624,3202006 年七月 08 日11: 27
Normalization.dll2.0.50727.17815,3602006 年七月 08 日11: 28
Normidna.nlp不適用59,3422006 年七月 08 日11: 28
Normnfc.nlp不適用45,7942006 年七月 08 日11: 28
Normnfd.nlp不適用39,2842006 年七月 08 日11: 28
Normnfkc.nlp不適用66,3842006 年七月 08 日11: 28
Normnfkd.nlp不適用60,2942006 年七月 08 日11: 28
Sos.dll2.0.50727.178377,3442006 年七月 08 日11: 28
System.Data.dll2.0.50727.1782,893,8242006 年七月 08 日11: 28
System.Data.oracleclient.dll2.0.50727.178482,3042006 年七月 08 日11: 28
狀況說明
Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。
其他相關資訊
如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
824684用來描述 Microsoft 軟體更新標準術語的說明
如需有關 OracleDataReader.GetChars 方法的詳細資訊,請造訪下列 Microsoft 開發 o 人 h 員 û 工 u 具 ã 網路 (MSDN) 網站]:

如果要重現問題的步驟

  1. 啟動 Microsoft Visual Studio 2005。
  2. 在 [檔案] 功能表上按一下 [新增],然後按一下 [專案]。
  3. 按一下 [Visual C# 按一下 [主控台應用程式、 在 [名稱] 方塊中鍵入 ConsoleApplication1 然後再按一下 [確定]
  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,然後再按一下 [確定]
  7. 在 [偵錯] 功能表上按一下 [啟動偵錯]。
OracleDataReader GetChars

警告:本文已自動翻譯

內容

文章識別碼:922674 - 最後檢閱時間:01/17/2015 15:31:10 - 修訂: 1.1

  • Microsoft .NET Framework 2.0
  • kbnosurvey kbarchive kbmt kbfix kbbug kbhotfixserver kbqfe kbpubtypekc KB922674 KbMtzh
意見反應