SQL Server 在地理列上返回错误
Posted
技术标签:
【中文标题】SQL Server 在地理列上返回错误【英文标题】:SQL Server Returns error on geography column 【发布时间】:2019-07-01 21:31:12 【问题描述】:我已经看到了与此相关的问题,但不完全是我的情况:
我创建了一个服务。它运行在一个也是 Web 服务器的服务器上。它查看运行 SQL Server 的远程服务器以收集要运行的数据。
从其中一个表中获取数据时,有一列具有地理数据类型。在正在运行的 Web 应用程序中,将这个表作为 Microsoft.SqlServer.Types.dll
引用没有问题。
在 Web 服务器上运行的服务创建并出错:
DataReader.GetFieldType(22) 返回 null。
在这台远程机器上执行选择语句时,甚至引用了相同的 dll。
【问题讨论】:
【参考方案1】:很奇怪。查询是一个非常基本的“Select * from ..... where .....”
我一直在搜索,发现一个帖子建议从以下文件夹中设置对 Microsoft.SqlServer.Types.dll 的引用:
C:\Program Files\Microsoft SQL Server\110\Shared
我做出了改变。用新的 dll 将重新编译的服务复制到 web 服务器上已安装的文件夹中,现在它完成了,没有错误。
我没有创建原始代码,所以我不确定原始 dll 引用的来源。
【讨论】:
以上是关于SQL Server 在地理列上返回错误的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server DataReader.GetField 返回 null 而不是地理数据
查询以将在特定地理距离内的行返回到给定行(使用 sql server 2008)
SQL Server 地理 STGeomFromWKB 错误 - System.FormatException:24201
在 ASP.Net 中使用 SQL Server 2012 地理数据类型 - DataReader.GetFieldType(x) 返回 null