从arcobjects中的表中读取记录c#

时间:2014-05-16 13:01:15

标签: c# arcobjects

我编写了这段代码(使用Arcobjcts在C#.net中)从我的表中读取记录:

 ITable table =featureWorkspace1.OpenTable(featureClass1.AliasName);
 List<String> list2 = new List<String>();
 ITableSelection tableSelection = table as ITableSelection;
 ISelectionSet2 selectionSet = tableSelection.SelectionSet as ISelectionSet2;
 ICursor Cursor = null;
 IFeatureCursor featureCursor = Cursor as IFeatureCursor;
 selectionSet.Search(null, true, out Cursor);
 int fieldIndex = featureCursor.Fields.FindField(champ);
 list2.Add(fieldIndex.ToString());
 this.listBox2.DataSource = list2;

但是会发生错误:

  

未设置为对象实例的对象引用

我也试过了:

 IQueryFilter queryFilter = new QueryFilterClass();
 queryFilter.WhereClause = " champ <> '' ";
 ICursor      Cursor = table.Search(queryFilter,true);
 IRow city = Cursor.NextRow();
 while (city != null)
 {
     list2.Add((String)(city.Value[fieldIndex].ToString()));
     city = Cursor.NextRow();
 }    
 this.listBox2.DataSource = list2;

错误是:

  

HRESULT 0x80040358的异常

你能帮我解决一下这两个问题吗?

1 个答案:

答案 0 :(得分:1)

检查city.Value[fieldIndex]中的值并确保其为!= System.DBNull.Value,然后再致电.ToString()

我还会验证您的字段索引是否正确以及您要查询champ的字段是否拼写正确。