2014-10-20 62 views
0

當我運行在SQL Developer中下面的SQL語句將返回2行:甲骨文DataReader沒有返回任何行

SELECT * FROM TEST 

當我運行在同一connenction下面的代碼中,datareader.HasRows會假:

 OracleCommand cmd = new OracleCommand(); 
     cmd.Connection = Connection; 
     cmd.CommandText = "SELECT * FROM TEST"; 
     OracleDataReader dr = cmd.ExecuteReader(); 
     if (dr.HasRows) 
     { 
      while (dr.Read()) 
      { 
       System.Windows.Forms.MessageBox.Show(dr.GetString(1)); 
      } 
     } 
     else 
     { 
      System.Windows.Forms.MessageBox.Show("no found rows"); 
     } 

爲什麼datareader不包含任何行?

其他信息:

  • 的Oracle 11g XE 64位安裝。
  • 安裝ODAC 11.2 64位。
  • 添加了對「oracle \ odp.net \ bin \ 4 \ Oracle.DataAccess.dll」的引用
  • 已添加:using Oracle.DataAccess.Client;
+0

'connection'應該打開嗎? – 2014-10-20 12:43:50

+0

您確定該表格包含任何記錄嗎?你有沒有例外? – Rik 2014-10-20 12:45:18

+0

嘗試將「Test」表更改爲「Dual」。如果'datareader.HasRows'變爲'true',則「Test」爲空,如果不是(即仍爲'false'),則檢查連接 – 2014-10-20 12:46:34

回答

4

因爲我沒有提交我創建的表和插入語句,數據不適用於第三方組件。

+0

花了幾個小時找到解決方案!它有助於! – 2015-08-03 12:08:54

+0

謝謝,這爲我做了詭計。 :) – PSSGCSim 2016-05-26 13:34:21