2017-02-27 64 views
0

我已经使用SQL Server Management Studio 2014创建了一个数据库,并且在输入数据时遇到了问题。正确格式进入地理数据类型数据库单元格

问题是我不知道以何种格式将数据输入到(位置)地理单元格中。

我进入的经度和纬度正是这样> 54.763226,-1.386241

但得到这个错误:

The changed value in this cell was not recognised as valid. .NET Framework Data Type: SqlGeography, Error message: Invalid cast from 'System.String' to 'Microsoft.SqlServer.Types.SqlGeography'

请你能告诉我如何将数据正确添加到地理小区?

+0

请勿链接到某个文件。在你的问题中包含实际的错误信息。 ** [编辑] **它,不要在评论中发布这样的东西 - 理想的是[**格式化文本**](http://stackoverflow.com/help/formatting) –

+0

嗨,对不起。我已经取出链接并以文本的形式添加了实际的错误。 – OverdueOrange

+0

正如以下答案所示,您可以使用'Point'方法来生成一个点。但是*为什么这应该是必要的另一个问题,你可能会觉得有趣。 “geography”数据类型可以保存更多的点数。它可以拥有上述的线条,区域和复数。一旦你知道这一点,“提供两个浮点数并将它们解释为纬度/经度”这一显而易见的事情是行不通的。 –

回答

0

使用地理数据的正确语法如下类型

语法:

点(纬度,经度,SRID)

Reference 1

Reference 2

================================================ =================

样品表:

CREATE TABLE dbo.EarthquakeData 
( 
    EarthquakeID INT IDENTITY(1,1), 
    EarthquakeInformation GEOGRAPHY NOT NULL 
) 

插入数据:

insert into dbo.EarthquakeData (EarthquakeInformation) 
values (geography::STGeomFromText(
     'POINT(54.763226 -1.386241)',4326)) 

查看插入的数据:

select cast(EarthquakeInformation as nvarchar(max)) from dbo.EarthquakeData 

enter image description here

+0

嗨,我仍然得到相同的错误,我完成了你所说的:点(54.763226,-1.386241,4326),请告诉我做错了什么 – OverdueOrange

+0

@adamSmith更新了我的文章...请检查以上...让我知道状态 –

+0

非常感谢你我今晚一定会尝试这个。 – OverdueOrange