【问题标题】:Read coordinates from geography SQL datatype to SqlDataReader in C#从地理 SQL 数据类型读取坐标到 C# 中的 SqlDataReader
【发布时间】:2018-06-19 03:20:25
【问题描述】:

我四处搜索,发现您可以使用myGeography.Lat 访问纬度,但尝试读取sqldatareader 时似乎不起作用,这就是我正在尝试的:

String sql = "SELECT * FROM myTable WHERE myGeography.STDistance(geography::Point(somelatitude, somelongitude, 4326)) <somerange 

SqlDataReader reader = command.ExecuteReader()

int lat,long    
lat = reader["myGeography.Lat"]    
long = reader["myGeography.Long"] 

【问题讨论】:

    标签: c# sql sqldatareader geography reader


    【解决方案1】:

    SQL Geography 是一种转换为 Microsoft.SqlServer.Types.SqlGeography 的数据类型。假设 myGeography 是一个地理,你可以这样做:

    Microsoft.SqlServer.Types.SqlGeography geo = (Microsoft.SqlServer.Types.SqlGeography)reader.GetValue["myGeography"];
    int long = geo.Long;
    int lat = geo.Lat;
    

    【讨论】:

    • 我得到错误无法将索引 [] 应用于类型方法组的表达式,如果我删除 getvalue 它会给我一个例外
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多