Страница 1 из 1

Object reference not set to an instance of an object

Добавлено: 03 мар 2003, 20:44
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 работает нормально.
В чем может быть дело?

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

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

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

По существу вопроса не знаю ничего :oops:

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

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

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

Добавлено: 03 мар 2003, 22:16
Смайл
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 работает нормально.
В чем может быть дело?
Гипотеза, вопрос.

А оно вылетает после удаления или до? Т.е. запись успевает удалиться?

Добавлено: 03 мар 2003, 22:16
pank
Помоему неправильная инициализация объекта

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

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

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

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

Data type mismatch in criteria expression.

Но с этим я думаю, разберусь.

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

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

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

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