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 平面世界地图

SQL Server DataReader.GetField 返回 null 而不是地理数据

查询以将在特定地理距离内的行返回到给定行(使用 sql server 2008)

SQL Server 地理 STGeomFromWKB 错误 - System.FormatException:24201

在 ASP.Net 中使用 SQL Server 2012 地理数据类型 - DataReader.GetFieldType(x) 返回 null

sql server, 已知两组地理位置数据,求第一组每个地理位置2km以内第二组地理位置的个数