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 работает нормально.
В чем может быть дело?
Object reference not set to an instance of an object
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
-
- Завсегдатай
- Сообщения: 213
- Зарегистрирован: 17 фев 2003, 16:05
- Откуда: NN - Montreal - Charlottetown - Montreal
- Смайл
- Пользователь
- Сообщения: 135
- Зарегистрирован: 18 фев 2003, 10:38
Re: Object reference not set to an instance of an object
Я извиняюсь за оффтопик
Но как будет на нормальном языке эта фраза:
Или я в трех соснах?
По существу вопроса не знаю ничего
Но как будет на нормальном языке эта фраза:
null reference? Или она таки не null а установлена во что-то что не instance of object?Alexan писал(а): Object reference not set to an instance of an object.
Или я в трех соснах?
По существу вопроса не знаю ничего
-
- Завсегдатай
- Сообщения: 213
- Зарегистрирован: 17 фев 2003, 16:05
- Откуда: NN - Montreal - Charlottetown - Montreal
Re: Object reference not set to an instance of an object
Понятия не имею, куда она установлена, главное что куда-то не туда.Смайл писал(а):как будет на нормальном языке эта фраза:null reference? Или она таки не null а установлена во что-то что не instance of object?Alexan писал(а): Object reference not set to an instance of an 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 работает нормально.
В чем может быть дело?
А оно вылетает после удаления или до? Т.е. запись успевает удалиться?
-
- Пользователь
- Сообщения: 75
- Зарегистрирован: 26 фев 2003, 20:19
- Откуда: toronto
-
- Завсегдатай
- Сообщения: 213
- Зарегистрирован: 17 фев 2003, 16:05
- Откуда: NN - Montreal - Charlottetown - Montreal
Да, уже нашел ошибку, отсутствовала строчка:pank писал(а):Помоему неправильная инициализация объекта
Me.OleDbDeleteCommand1 = New System.Data.OleDb.OleDbCommand()
Почему-то для Select само сгенерировалось, а для Delete и Update надо вручную писать.
Теперь выдает другую ошибку:
Data type mismatch in criteria expression.
Но с этим я думаю, разберусь.
-
- Завсегдатай
- Сообщения: 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.
Но с этим я думаю, разберусь.
-
- Частый Гость
- Сообщения: 31
- Зарегистрирован: 17 фев 2003, 22:22
Много приколов в дот.нете. это один из них.
Типа:
1. Объявляем референс и не присваиваем instance;
2. Зовём метод объекта у пустого референса;
3. При этом в дебаге смотрим что происходит;
4. В результате дебагер входит внутрь метода "какбы" объекта и падает на обращении к мемберам.
Есть ещё прикол, но только у VB.NET:
Если вывать какой либо метод, который принимает параметром объект типа __value и вместо этого объекта подсунуть Nothing, то в результате автоматически будет создан объект этого класс используя default constractor.
Но дальше больше. Если удалить def ctor и оставить не default, .NET сгенерит его автоматически (так как это __value type)
А если def ctor всётаки оставить, но сделать его private, то VB заругается на этапе исполнения а не компиляции.
Это всё мелочи конечно
Типа:
1. Объявляем референс и не присваиваем instance;
2. Зовём метод объекта у пустого референса;
3. При этом в дебаге смотрим что происходит;
4. В результате дебагер входит внутрь метода "какбы" объекта и падает на обращении к мемберам.
Есть ещё прикол, но только у VB.NET:
Если вывать какой либо метод, который принимает параметром объект типа __value и вместо этого объекта подсунуть Nothing, то в результате автоматически будет создан объект этого класс используя default constractor.
Но дальше больше. Если удалить def ctor и оставить не default, .NET сгенерит его автоматически (так как это __value type)
А если def ctor всётаки оставить, но сделать его private, то VB заругается на этапе исполнения а не компиляции.
Это всё мелочи конечно