前面文章中讲到arcengine读取.dbf表,当对.dbf表进行编辑操作时,没办法直接对ITable类的.dbf表进行编辑,因此将ITable表先转换为datatable表。
具体代码如下:
将读取的.dbf表以参数形式传递到下面方法中,
public DataTable ITabletoDataTable(ITable e)
{
DataTable dt = new DataTable();
//根据.dbf表的字段,对DataTable定义列
for (int i = 0; i < e.Fields.FieldCount; i++)
{
dt.Columns.Add(e.Fields.get_Field(i).Name);
}
//使用ICursor类的search方法遍历.dbf表
ICursor pic = e.Search(null, false);
IRow pir = pic.NextRow();
//往DataTable里添加数据
while (pir != null)
{
DataRow pdr = dt.NewRow();
string[] strRow = new string[e.Fields.FieldCount];
for (int i = 0; i < e.Fields.FieldCount; i++)
{
strRow[i] = pir.get_Value(i).ToString();
}
pdr.ItemArray = strRow;
dt.Rows.Add(pdr);
pir = pic.NextRow();
}
return dt;
}