2

我有一个空间模型定义,它曾经与 SQL Server 2008 一起使用,但不再与 2012 一起使用。

我不知道为什么,但我无法让它工作......

model.Location = DbGeography.Parse("POINT(" + model.Latitude + " " + model.Longitude + ")");

我得到了这个例外:

System.Reflection.TargetInvocationException 未被用户代码处理
HResult=-2146232828
Message=Exception 已被调用目标抛出。
Source=mscorlib
StackTrace:
在 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo文化,布尔 skipVisibilityChecks)
在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] 参数, CultureInfo 文化)
在 System.Reflection.MethodBase.Invoke(Object obj, Object[] 参数)
在 System.Data.SqlClient.SqlSpatialServices.GeographyFromText(String geographyText)
在 System.Data.Spatial.DbGeography.Parse(String geographyText)
在 b.Helpers.Repository.saveFoursquareMarkers(List 2 参数) 在 System.Web.Mvc.ControllerActionInvoker。 InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary 2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c_ DisplayClass42.b _41() at System.Web.Mvc.Async.AsyncResultWrapper.<>c_ DisplayClass8 1.End () 在 System.Web.Mvc.Async.AsyncResultWrapper.End[TResult](IAsyncResult asyncResult, 对象标记)1 fs) in C:\Users\Administrator\Documents\Visual Studio 2010\Projects\b\Helpers\Repository.cs:line 182
at b.Controllers.KayController.GetMarkers(String lat, String lng, String type, Double dist, String today, String google) in C:\Users\Administrator\Documents\Visual Studio 2010\Projects\b\Controllers\KayController.cs:line 29
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary

2 parameters)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.InvokeSynchronousActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary


1.<BeginSynchronous>b__7(IAsyncResult _)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult


在 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c
_DisplayClass37.<> c_DisplayClass39.b _33()
在 System.Web.Mvc.Async。 AsyncControllerActionInvoker.<>c_ DisplayClass4f.b _49()

InnerException:System.FormatException
HResult=-2146233033
消息=24141:输入的位置 21 处应有一个数字。输入有 ,905651030368。
Source=Microsoft.SqlServer.Types
StackTrace:
在 Microsoft.SqlServer.Types.OpenGisWktReader.RecognizeDouble()
在 Microsoft.SqlServer.Types.OpenGisWktReader.ParsePointText(Boolean parseParentheses)
在 Microsoft.SqlServer.Types.OpenGisWktReader.ParseTaggedText(OpenGisType type)
在Microsoft.SqlServer.Types.OpenGisWktReader.Read(OpenGisType 类型,Int32 srid)
在 Microsoft.SqlServer.Types.SqlGeography.GeographyFromText(OpenGisType 类型,SqlChars taggedText,Int32 srid)
在 Microsoft.SqlServer.Types.SqlGeography.STGeomFromText(SqlChars geometryTaggedText, Int32 srid)
在 Microsoft.SqlServer.Types.SqlGeography.Parse(SqlString s)

有什么帮助吗?

4

2 回答 2

1

这个错误真的无法理解,但问题是我的计算机的本地化。

它期待一个点 (.) 而不是逗号 (,) 作为我的十进制符号。我刚刚从开始>控制面板>区域和语言>其他设置设置它,瞧。它现在正在工作。

谢谢你的帮助。

于 2012-04-11T06:59:50.440 回答
0

卸载 CTP 并安装 .NET Framework 4.5 beta。如果您仍然有问题,请更新线程。

于 2012-04-11T06:17:06.730 回答