создаем под ArcGis 10.3.1 button
в цикле вызывается поиск по фильтру, создается IFeatureCursor
на 226 шаге цикла вылетает ошибка, решили что надо удалять (dispose) IFeatureCursor
Помогите правильно реализовать
програмирование Add под С#
-
- Интересующийся
- Сообщения: 34
- Зарегистрирован: 04 окт 2010, 16:14
- Репутация: 0
- Откуда: Беларусь,Гродно
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: програмирование Add под С#
А вы не пробовали сначала проверить количество записей, а уже потом создавать сам курсор. Ну и просто глаз дёргается от FeatureCount в цикле.
-
- Активный участник
- Сообщения: 133
- Зарегистрирован: 17 май 2011, 06:22
- Репутация: 50
- Откуда: Нижний Новгород
Re: програмирование Add под С#
Ну для того что бы видеть ошибку нужен код - на скринах вовсе не тот код который вызывает исключение (хотя возможно именно тут происходит исключение, но не видно откуда идут параметры функций)
Для работы с курсорами и последующим освобождением ресурсов я обычно использую следующию конструкцию -
Код: Выделить всё
'Dim FC As IFeatureClass 'Тут присваиваем значение для класса
Dim cur = FC.Search(Nothing, False) 'Выборка по всему классу, замените Nothing на фильр для выборки по условиям
Dim cur = FC.Update(Nothing, False) 'Выборка для изменения объектов
Dim feat As IFeature = cur.NextFeature
feat = cur.NextFeature ' Получаем первый объект, nothing если его нет
While feat IsNot Nothing
'Выполняем алгоритмы действий с объектом
'// обязательные действия в конце цикла
' Если происходит изменения объекта
'cur.UpdateFeature(feat)
' Получаем следующий объект
feat = cur.NextFeature
End While
System.Runtime.InteropServices.Marshal.ReleaseComObject(cur) 'Освобождаем курсор
-
- Интересующийся
- Сообщения: 34
- Зарегистрирован: 04 окт 2010, 16:14
- Репутация: 0
- Откуда: Беларусь,Гродно
Re: програмирование Add под С#
Огромное спасибо! это то, что нужно!
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей