摘:通过ICursor对Table进行操作(添加、修改、删除)
通过ICursor对Table进行操作(添加、修改、删除)
连接上数据表的目的就是对其进行包括浏览、添加、修改、删除等基本操作。
浏览功能,之前文章中一提到,就是将Itable转换为DataTable与DataGridView的DataSource绑定实现。此文主要实现添加、修改以及删除功能。
(1)添加:
首先获取ITable,
ICursor cursor = table.Insert(
true
);
IRowBuffer pRowBuffer = table.CreateRowBuffer();
pRowBuffer.set_Value(1, strLayerName);
pRowBuffer.set_Value(2, strAliasLyr);
pRowBuffer.set_Value(3, strDataset);
pRowBuffer.set_Value(4, System.DateTime.Now);
pRowBuffer.set_Value(5, 1);
pRowBuffer.set_Value(6, strAliasDs);
cursor.InsertRow(pRowBuffer);
cursor.Flush();
(2)修改:
同样要先获取ITable,
IQueryFilter queryFilter =
new
QueryFilterClass();
queryFilter.WhereClause =
"OBJECTID="
+iIndex;
//"LAYERNAME=" + strLayerName
ICursor cursor = table.Update(queryFilter,
false
);
//true
IRow row = cursor.NextRow();
row.set_Value(row.Fields.FindFieldByAliasName(
"图层别名"
), strAliasNew);
//2
cursor.UpdateRow(row);
注:此处Update为重点,如果使用Search,游标可以指定到此行记录,但是在UpdateRow方法调用时会报错(Read Only)。
(3)删除:
IQueryFilter queryFilter =
new
QueryFilterClass();
queryFilter.WhereClause =
"OBJECTID="
+ iIndex;
ICursor cursor2 = table.Update(queryFilter,
false
);
IRow row2 = cursor2.NextRow();
row2.Delete();