GEOMETRY引发了类型为';System.Data.StrongTypeingException';

本文关键字:Data StrongTypeingException System 类型 GEOMETRY | 更新日期: 2023-09-27 17:57:59

我有一个带有DataRow的xsd,它的字段类型为NetSdoGeometry.sdogeometry。当我试图获取数据时,我可以检索表中除一个字段外的所有字段。我得到一个几何字段的错误,没有数据。几何体确实有数据,但不知何故,它认为它是空的:

GEOMETRY="r.GEOMETRY"引发了类型为"System.Data.StrongTypeingException"的异常

这是获取数据的调用:

MyDS.GisRow r = mDS.Gis.FindByGis_ID((decimal)aRow.Cells["Gis_ID"].Value);

以下是几何数据列的属性:

AllowDBNull=True
AutoIncrement=False
AutoIncrementSeed=0
自动递增步骤=1
Caption=几何
DataType=NetSdoGeometry.sdogeometry
DateTimeMode=未指定本地
默认值=
表达式=
最大长度=-1
NullValue=(引发异常)
ReadOnly=False
Source=几何
唯一=错误
名称=几何

这是数据集/几何体字段的MyDS.Designer.cs:

[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
            public NetSdoGeometry.sdogeometry GEOMETRY {
                get {
                    try {
                        return ((global::NetSdoGeometry.sdogeometry)(this[this.tableGis.GEOMETRYColumn]));
                    }
                    catch (global::System.InvalidCastException e) {
                        throw new global::System.Data.StrongTypingException("The value for column ''GEOMETRY'' in table ''Gis'' is DBNull.", e);
                    }
                }
                set {
                    this[this.tableGis.GEOMETRYColumn] = value;
                }
            }

该记录的表中有"几何"字段的数据。为什么几何字段返回为空,并为该字段生成StrongTypeingException错误?

Thanks Before Hand

GEOMETRY引发了类型为';System.Data.StrongTypeingException';

已解决!

台阶在这儿。基本上,它涉及重建领域:

  1. 在xsd设计器中,右键单击表设计中的GEOMETRY列,然后选择delete。(如果你看到一个名为GEOMETRY1的列,也删除它)

  2. 在xsd设计器中,右键单击表并选择"配置",现在将GEOMETRY列重新添加到查询中

  3. 选择表的属性,选择几何数据列,并将其数据类型从System.Object更改为NetSdoGeometry.sdogeometry

  4. 如果计划在多个架构中使用该架构,请选中所有查询并从表名称前面删除该架构。例如,"select*from myschema.table1"应编辑为"select*from table1"

  5. 重建项目,一切就绪!

注意:如果要删除架构名称,请确保在整个项目中搜索"myschema",以确保已完全删除它。此外,如果对任何查询进行了更改,它将再次将其添加回来,并且需要再次删除。以下是对硬编码模式名称的更详细解释:http://social.msdn.microsoft.com/Forums/en-US/c89db0b1-b7ea-4b81-a222-03d375d36f7f/how-to-remove-oracle-schema-name-hardcoded-in-tableadapter-query?forum=adodotnetdataproviders

相关文章: