摘:通过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();

 

你可能感兴趣的:(Cursor)