Страница 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?
Или я в трех соснах?
По существу вопроса не знаю ничего

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 заругается на этапе исполнения а не компиляции.
Это всё мелочи конечно
