• .net core 2.1环境下ADO.NET 报错DataReader.GetFieldType(46) returned null.问题


    最近在写一个.net core 2.1项目时。用ADO.NET 连接数据库在对某张表进行查询时发生DataReader.GetFieldType(46) returned null.(第46个字段(从0开始计)在尝试获取类型的时候返回了null空值)报错。(别问我为什么用ADO.NET连数据库。这项目用EFCore连第一个数据库,ADO.NET连第二个数据库。也别问我为什么要这样做,我也不知道,我拿来改的)

    经调试发现数据库表里第46个字段类型为:geography  ---下图为geography 字段说明

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

     -------------------------------------------------------------------------------------------------------------------------------------------------------------

      这个数据类型导致了SqlDataAdapter 在Fill DataTable的时候报错。因为datatable没这个类型所有在获取FieldType时报错。

    有大佬建议我先在不获取FieldType的情况下先fill一次看看,然后尝试读读对应的dataitem里面是什么内容,再去决定转化的方法。

    我觉得麻烦,所以决定不用SqlDataAdapter模式,改为SqlDataReader 解决类型报错问题。

    另外geography数据类型在.NET Framework下对应类型为DbGeography。在 System.Data.Entity.Spatial命名空间下。应该是.NET Framework4.5之后才有支持的

    而.net core无DbGeography类型。不知道是未支持还是微软更换了类型名。总之在.net core官方文档里未找到DbGeography类型

    另外.net core下如果要修改这个字段值该如何写?这个因为项目没有要求对这个字段进行修改新增,所以不得而知,有空研究下。

  • 相关阅读:
    AO学习资料.pdf
    ArcGIS中对Feature的操作
    http://bbs.esrichinabj.cn/ESRI/thread7402911.html
    ArcEngine获取两点间沿曲线的距离已经解决
    http://edndoc.esri.com/arcobjects/9.2/welcome.htm
    shp文件读入内存变量
    韩鹏 地图编辑 笔记
    出差补贴没算
    素数小结
    tomcat7配置
  • 原文地址:https://www.cnblogs.com/objectnull/p/13434305.html
Copyright © 2020-2023  润新知