2013-03-28 30 views
2
static public void ConnectAndQuery() 
     { 

      string connectionString = GetConnectionString(); 
      using (OracleConnection conn = new OracleConnection()) 
      { 
       conn.ConnectionString = connectionString; 
       conn.Open(); 
       Console.WriteLine("State: " + conn.State); 
       Console.WriteLine("Connection String: " + conn.ConnectionString); 

       OracleCommand command = conn.CreateCommand(); 
       string sql = "SELECT * FROM users"; 
       command.CommandText = sql; 

       OracleDataReader reader = command.ExecuteReader(); 

       while (reader.Read()) 
       { 
        string myField = (string)reader["MYFIELD"]; 
        Console.WriteLine(myField); 
       } 
      } 

     } 

連接已建立並正常工作,但在嘗試從數據庫中獲取數據時,獲得IndexOutOfRangeException。該例外被捕獲在獲取數據異常 - C#與OracleDB

string myField = (string)reader["MYFIELD"]; 

我看了有關OracleDataReader和以瞭解讀者的命令信息,但是......它存儲在一個陣列或任何其它序列採集的數據?爲什麼我會得到IndexOutOfRangeException以及爲什麼讀者需要在[]括號中提供參數?

回答

2

您可能沒有一個名爲MYFIELD的字段。請記住,字段名稱區分大小寫...嘗試使用索引,而不是閱讀器[0]