您好,根据您的描述,建议您参考以下流程进行实现:
- 通过 Datasets.Create 方法新建 Tabular 类型数据集(将 DatasetVectorInfo 对象的类型设置为 DatasetType.Tabular);
- 通过 datasetVector.AppendFields 为新建的 Tabular 类型数据集添加 SmID 字段;
- 使用 Recordset 将源矢量数据集的 SmID 字段值依次写入新建的 Tabular 数据集中;
- 通过 datasetVector.AppendFields 方法,以 SmID 字段值为链接字段,填充您需要导入的其他字段值。
这里是我本机编写的测试代码可供您参考:
DatasetVectorInfo datasetVectorInfo = new DatasetVectorInfo();
datasetVectorInfo.Type = DatasetType.Tabular;
datasetVectorInfo.Name = "test";
DatasetVector datasetVector = workspaceControl.WorkspaceTree.Workspace.Datasources[0].Datasets.Create(datasetVectorInfo);
Recordset recordset1 = datasetVector.GetRecordset(false, CursorType.Dynamic);
Recordset recordset = srcDatasetVector.GetRecordset(false, CursorType.Static);
bool i = datasetVector.AppendFields(srcDatasetVector, "SmID", "SmID", new string[] { });
do
{
var smid = recordset.GetFieldValue("SmID");
recordset1.AddNew(null, new Dictionary<string, object>() { { "SmID", smid } });
recordset1.Update();
} while (recordset.MoveNext());
recordset1.Dispose();
bool j = datasetVector.AppendFields(srcDatasetVector, "SmID", "SmID", new string[] { "Country_CH", "Capital_CH" });
希望可以帮到您。