Object reference not set to an instance of an object

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Alexan
Завсегдатай
Сообщения: 213
Зарегистрирован: 17 фев 2003, 16:05
Откуда: NN - Montreal - Charlottetown - Montreal

Object reference not set to an instance of an object

Сообщение Alexan »

VB.NET & Access using ADO

При попытке удалить запись выдает следующую ошибку:

Object reference not set to an instance of an object.

На команде:

Me.OleDbDeleteCommand1.CommandText = "DELETE FROM Table1 WHERE index='" & e.Item.ItemIndex & "'"

То же самое происходит на Update.
Select работает нормально.
В чем может быть дело?
Аватара пользователя
Смайл
Пользователь
Сообщения: 135
Зарегистрирован: 18 фев 2003, 10:38

Re: Object reference not set to an instance of an object

Сообщение Смайл »

Я извиняюсь за оффтопик
Но как будет на нормальном языке эта фраза:
Alexan писал(а): Object reference not set to an instance of an object.
null reference? Или она таки не null а установлена во что-то что не instance of object?

Или я в трех соснах?

По существу вопроса не знаю ничего :oops:
Alexan
Завсегдатай
Сообщения: 213
Зарегистрирован: 17 фев 2003, 16:05
Откуда: NN - Montreal - Charlottetown - Montreal

Re: Object reference not set to an instance of an object

Сообщение Alexan »

Смайл писал(а):как будет на нормальном языке эта фраза:
Alexan писал(а): Object reference not set to an instance of an object.
null reference? Или она таки не null а установлена во что-то что не instance of object?
Понятия не имею, куда она установлена, главное что куда-то не туда. :(
Аватара пользователя
Смайл
Пользователь
Сообщения: 135
Зарегистрирован: 18 фев 2003, 10:38

Re: Object reference not set to an instance of an object

Сообщение Смайл »

Alexan писал(а):VB.NET & Access using ADO

При попытке удалить запись выдает следующую ошибку:

Object reference not set to an instance of an object.

На команде:

Me.OleDbDeleteCommand1.CommandText = "DELETE FROM Table1 WHERE index='" & e.Item.ItemIndex & "'"

То же самое происходит на Update.
Select работает нормально.
В чем может быть дело?
Гипотеза, вопрос.

А оно вылетает после удаления или до? Т.е. запись успевает удалиться?
pank
Пользователь
Сообщения: 75
Зарегистрирован: 26 фев 2003, 20:19
Откуда: toronto

Сообщение pank »

Помоему неправильная инициализация объекта
Alexan
Завсегдатай
Сообщения: 213
Зарегистрирован: 17 фев 2003, 16:05
Откуда: NN - Montreal - Charlottetown - Montreal

Сообщение Alexan »

pank писал(а):Помоему неправильная инициализация объекта
Да, уже нашел ошибку, отсутствовала строчка:

Me.OleDbDeleteCommand1 = New System.Data.OleDb.OleDbCommand()

Почему-то для Select само сгенерировалось, а для Delete и Update надо вручную писать.

Теперь выдает другую ошибку:

Data type mismatch in criteria expression.

Но с этим я думаю, разберусь.
Alexan
Завсегдатай
Сообщения: 213
Зарегистрирован: 17 фев 2003, 16:05
Откуда: NN - Montreal - Charlottetown - Montreal

Сообщение Alexan »

Alexan писал(а):
pank писал(а):Помоему неправильная инициализация объекта
Да, уже нашел ошибку, отсутствовала строчка:
Me.OleDbDeleteCommand1 = New System.Data.OleDb.OleDbCommand()
Почему-то для Select само сгенерировалось, а для Delete и Update надо вручную писать.
Теперь выдает другую ошибку:
Data type mismatch in criteria expression.
Но с этим я думаю, разберусь.
Эту ошибку тоже нашел. Теперь удаляет, но не то что нужно. :)
Leo
Частый Гость
Сообщения: 31
Зарегистрирован: 17 фев 2003, 22:22

Сообщение Leo »

Много приколов в дот.нете. это один из них.
Типа:
1. Объявляем референс и не присваиваем instance;
2. Зовём метод объекта у пустого референса;
3. При этом в дебаге смотрим что происходит;
4. В результате дебагер входит внутрь метода "какбы" объекта и падает на обращении к мемберам. :)

Есть ещё прикол, но только у VB.NET:
Если вывать какой либо метод, который принимает параметром объект типа __value и вместо этого объекта подсунуть Nothing, то в результате автоматически будет создан объект этого класс используя default constractor. :)
Но дальше больше. Если удалить def ctor и оставить не default, .NET сгенерит его автоматически (так как это __value type) :)
А если def ctor всётаки оставить, но сделать его private, то VB заругается на этапе исполнения а не компиляции. :)

Это всё мелочи конечно :wink:
Ответить