Другим сценарием является то, что вы нанесли нулевой объект в тип значения . Например, код ниже:
object o = null;
DateTime d = (DateTime)o;
Он выкинет NullReferenceException
в роли. В приведенном выше примере это кажется совершенно очевидным, но это может произойти в более «поздних связующих» сложных сценариях, где нулевой объект был возвращен из некоторого кода, которого вы не являетесь, и приведение, например, генерируется некоторой автоматической системой.
Одним из примеров этого является этот простой фрагмент привязки ASP.NET с элементом управления календарем:
" />
Здесь SelectedDate
на самом деле является свойством - типа DateTime
- типа Calendar
Web Control, и привязка может отлично вернуть что-то null. Неявный генератор ASP.NET создаст кусок кода, который будет эквивалентен приведенному выше методу. И это поднимет NullReferenceException
, что довольно сложно определить, потому что он лежит в сгенерированном ASP.NET коде, который компилирует отлично ...
Чтобы облегчить вашу жизнь, я бы рекомендовал использовать только тонкий драйвер Oracle.
Сначала загрузите драйвер с сайта Oracle :
http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html
Затем добавьте JAR в свой проект и подключитесь к базе данных, используя:
Class.forName ("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@//localhost:1521/orcl", "scott", "tiger");
Конечно, замените эти параметры теми, которые соответствуют вашей БД.
для oracle 10g драйвер JDBC «ojdbc10_g.jar»
доступен в вашей системе внутри% ORACLE_HOME \ jdbc \ lib Не нужно загружать.
Class.forName ("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@//localhost:1521/orcl", "scott", "tiger");
conn.setAutoCommit(false);
Самый простой для развертывания - это, вероятно, драйвер типа 4 или тонкий драйвер. Я говорю, что это самый простой из-за того, что он не полагается на какие-либо собственные библиотеки Oracle или клиентскую установку. Он легко доступен из Oracle .
Пожалуйста, просмотрите этот вопрос для уточнения:
«тонкий» драйвер - это 100% -ная реализация Java. OCI вызывает реализацию C. Там может быть даже JDBC для ODBC-моста, что позволяет использовать драйвер ODBC вашей системы. Предлагаемое чтение: Oracle Instant Client