通过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;
ICursor
cursor = table.Update(queryFilter,
false
);
IRow
row = cursor.NextRow();
row.set_Value(row.Fields.FindFieldByAliasName(
"图层别名"
),
strAliasNew);
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();