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在尝试从数据库获取数据时我得到了。异常被捕获

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

为了理解读者,我查找了有关 OracleDataReader 和命令的信息,但是......它是否将获取的数据存储在数组或任何其他序列中?为什么我会得到IndexOutOfRangeException以及为什么读者需要[]括号中的参数?

4

1 回答 1

2

您可能没有名为 MYFIELD 的字段。请记住,字段名称区分大小写...尝试使用索引,即 reader[0]

于 2013-03-28T13:27:38.813 回答