首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >几何学抛出“System.Data.StrongTypingException”类型的例外

几何学抛出“System.Data.StrongTypingException”类型的例外
EN

Stack Overflow用户
提问于 2014-04-11 15:26:44
回答 1查看 1.3K关注 0票数 0

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

几何学= 'r.GEOMETRY‘抛出'System.Data.StrongTypingException’类型的一个例外

这里是获取数据的调用:

代码语言:javascript
复制
MyDS.GisRow r = mDS.Gis.FindByGis_ID((decimal)aRow.Cells["Gis_ID"].Value);

这里是几何图形DataColumn:的属性

AllowDBNull =真

AutoIncrement = False

AutoIncrementSeed =0

AutoIncrementStep =1

标题=几何学

DataType = NetSdoGeometry.sdogeometry

DateTimeMode = UnspecifiedLocal

DefaultValue =

表达式=

MaxLength = -1

NullValue =(抛出异常)

ReadOnly = False

源=几何

唯一=假

名称=几何学

这里是dataset/几何学字段的MyDS.Designer.cs:

代码语言:javascript
复制
[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;
                }
            }

该记录的表中有几何学字段的数据。为什么几何学字段返回为null并为该字段生成StrongTypingException错误?

手前谢

EN

回答 1

Stack Overflow用户

发布于 2014-04-14 12:48:49

解决了!

下面是台阶。基本上,它涉及到重新创建这个领域:

  1. 在xsd设计器中,右键单击表的设计中的几何图形列,然后选择delete。(如果您看到一个名为GEOMETRY1的列,也可以删除它)
  2. 在xsd设计器中,右键单击表并选择“配置”,然后将几何图形列重新添加到查询中。
  3. 选择表的属性,选择几何DataColumn并将其DataType从System.Object更改为NetSdoGeometry.sdogeometry
  4. 如果计划在多个架构中使用该架构,请检查所有查询,并从表名前面删除架构。例如,应该将"select * from myshema.table1“编辑为"select * from table1”
  5. 重建项目,一切就绪!

注意:如果要删除模式名称,请确保在整个项目中搜索“myshema”。确保你已经把它完全移除了。还有一个注意事项,如果您对任何查询进行更改,它将再次添加它,并且需要再次删除它。下面是对硬编码模式名称的更详细解释: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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23016717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档