Estoy tratando de consulta de una clase de entidad para todas las funciones que cumplen un determinado criterio (en este caso, el Status
campo NULL
). Sin embargo, yo no estoy muy lejos en el intento de método antes de ArcMap se bloquea completamente. No tengo idea razonable de cómo traza de errores que provocan la caída de un programa, para empezar, así que estoy más confundido de lo necesario, espero. Estoy construyendo esta en VS 2008 Express, por lo que vale.
public void PerformAttributeQuery(ESRI.ArcGIS.Geodatabase.IFeatureClass fc)
{
ESRI.ArcGIS.Geodatabase.IQueryFilter queryFilter = new ESRI.ArcGIS.Geodatabase.QueryFilterClass();
queryFilter.WhereClause = "[Status] IS NULL"; // create the where clause statement
Todo está bien para que el primer par de declaraciones, pero esta consulta causa de un accidente:
// query the table passed into the function and use a cursor to hold the results
ESRI.ArcGIS.Geodatabase.IFeatureCursor featurecursor = fc.Search(queryFilter, false);
Se bloquea antes de llegar a la línea siguiente (pongo en la depuración de los cuadros de mensaje para las pruebas), pero voy a poner aquí por conveniencia:
ESRI.ArcGIS.Geodatabase.IFeature feature = (ESRI.ArcGIS.Geodatabase.IFeature)featurecursor.NextFeature();
ESRI.ArcGIS.ArcMapUI.IContentsView currentContentsView = ArcMap.Document.CurrentContentsView as IContentsView;
ESRI.ArcGIS.Carto.IFeatureLayer featureLayer = (ESRI.ArcGIS.Carto.IFeatureLayer)currentContentsView.SelectedItem;
ESRI.ArcGIS.Carto.IFeatureSelection fSelection = featureLayer as ESRI.ArcGIS.Carto.IFeatureSelection;
fSelection.Add(feature);
FindCommandAndExecute(ArcMap.Application as ESRI.ArcGIS.Framework.IApplication, "{AB073B49-DE5E-11D1-AA80-00C04FA37860}");
}
Utilicé el PerformAttributeQuery
fragmento de trabajar con FeatureClasses en lugar de las Tablas (o de lo que yo esperaba), si quieres una referencia adecuada. Mis preguntas son:
- Cómo puedo obtener una mejor presentación de informes de accidente de errores?
- ¿De dónde me salen mal? Respuesta: debo derrotados admitir que he utilizado el mal caracteres para indicar la ubicación de la tabla de la característica estaba consultando. El cambio de la
[Status]
miqueryFilter.WhereClause
a\"Status\"
literalmente resuelto todos los problemas obvios.