中文

错误:形状数与表记录数不匹配

错误消息

将 shapefile 添加到 ArcView 3.x 或 ArcMap 数据框中的视图时,会发生以下错误:

“形状数与表记录数不匹配。”

原因

当 shapefile 中的要素数与 DBF 表(即 shapefile 的属性表)中的记录数不匹配时,将返回此错误。 以下是产生错误的一些常见原因。

  • 在另一个软件包(如 Microsoft Excel 或 Microsoft Access)中向 DBF 表添加或删除记录。
  • 正在编辑 shapefile 以及 shapefile 在损坏状态下保存时发生系统故障。
  • 多个用户同时编辑相同的 shapefile。
  • 向 shapefile 中添加要素时双击鼠标。 零面积记录添加到表中,但该要素没有几何图形,并且在视图中不可见。

解决方案或解决方法

可通过以下方法之一恢复 shapefile。

警告:
强烈建议在尝试使用任何这些方法之前制作一份损坏的 shapefile 的备份副本。

使用 Andrew Williamson 的 ShapeFile 修复实用程序

此实用程序是独立产品,无需运行 ArcView GIS 或 ArcGIS Desktop。
注:
要使 ShapeFile Repairer Utility 正常工作,请确保计算机的语言设置与用于创建 shapefile 的语言相匹配。

编辑 DBF 文件

注:
可以多次尝试该方法。
  1. 打开 DBF 文件。
  2. 删除最后一条记录。
  3. 保存并关闭 DBF 文件。
  4. 将 shapefile 加载到视图中。
    • 下载 Shapefile 修复工具。 在损坏的 shapefile 上运行该工具。
    • 使用 ArcInfo Workstation SHAPEARC 命令:
      1. 在 shapefile 上运行 SHAPEARC 命令。
      2. 在输出 coverage 上运行 DESCRIBE。
      3. 记下形状的数量。
      4. 打开 shapefile 对应的 DBF。
      5. 将 DBF 的记录数与 DESCRIBE 命令产生的形状数进行比较。
        • 如果 DBF 记录数小于形状数,请添加记录,直到形状数与记录数匹配。
        • 如果 DBF 记录数大于形状数,则删除记录,直到形状数与记录数匹配。
      6. 保存 DBF 文件。
        Shapefile 应在 ArcView 中打开,但不能保证 shapefile 的属性信息是正确的。 要测试属性数据是否已分配给正确的要素,请执行以下操作:
        1. 将 shapefile 加载到新视图中。
        2. 打开 shapefile 的属性表。
        3. 平铺视图和表格。
        4. 选择记录。
        5. 将所选记录与视图中的所选要素进行比较。
        6. 如果该要素与属性不对应,请确定是否添加或删除记录以及添加或删除记录的位置。 必须适当地编辑 DBF,请记住记录数必须等于形状数。
          重复比较步骤,直到要素和属性同步。

相关信息