2011-12-24 23 views
5

即使我知道有確切的SQL查詢我正在執行的數據,因爲我直接在數據庫上執行SQL查詢,我不斷得到一個例外,說沒有數據存在。我的代碼如下:錯誤:「沒有數據存在的行/列」使用OdbcDataReader

 try 
     { 
      dbConnection.Open(); 

      // Process data here. 
      OdbcCommand dbCommand = dbConnection.CreateCommand(); 
      dbCommand.CommandText = "select forename from tblperson where personcode in (select clientcode from tblclient) and surname = '######'"; 
      OdbcDataReader dbReader = dbCommand.ExecuteReader(); 

      Console.WriteLine(dbReader.GetString(0)); 

      dbReader.Close(); 
      dbCommand.Dispose(); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 
     finally 
     { 
      dbConnection.Close(); 
     } 

任何人都可以告訴我爲什麼會發生這種情況的原因。該查詢應該返回一個單一的結果,而我目前只是這樣做,以確保它正在工作,它似乎不是。任何幫助將不勝感激。

回答

6

ExecuteReader被調用後,讀者定位之前第一個返回的記錄。爲了讀取第一個記錄,你需要調用Read()

dbReader.Read() 

當然,或者有多個行:

while (dbReader.Read()) 
+0

泰。這非常有用,而且很有效。 – Dazzmaster1 2011-12-24 02:41:17

+0

@ Dazzmaster1 - 太棒了 - 不客氣,祝你好運! – 2011-12-24 02:45:37

+0

這樣一個簡單的問題,這樣一個無益的錯誤信息。 – 2013-01-09 20:53:24

相關問題