C# 在C中从地理SQL数据类型读取坐标到SqlDataReader

C# 在C中从地理SQL数据类型读取坐标到SqlDataReader,c#,sql,sqldatareader,geography,reader,C#,Sql,Sqldatareader,Geography,Reader,我到处搜索过,我发现您可以使用myGeography.Lat访问latitude,但在尝试读取sqldatareader时,它似乎不起作用,这就是我正在尝试的: String sql = "SELECT * FROM myTable WHERE myGeography.STDistance(geography::Point(somelatitude, somelongitude, 4326)) <somerange SqlDataReader reader = command.Exec

我到处搜索过,我发现您可以使用myGeography.Lat访问latitude,但在尝试读取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"] 

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;

我得到一个错误,无法将[]索引到method group类型的表达式,如果我删除getvalue,它会给我一个exeption