What is C# equivalent of geography sql server datatype in .net framework 4.0?
使用.NET 4.0框架的NET Web应用程序。
我有一个存储过程,它接受SQL Server 2008 R2中的地理数据类型。
我想将C代码中的数据插入到SQL Server中。
但我找不到在C中应该使用哪种数据类型,这相当于SQL Server 2008数据类型。
听起来可能很明显,但为什么不使用在SQL Server中安装为UDT的同一数据类型-
对于SQL Server 2012实例,以下内容可以正常工作。我无法对SQL Server 2008进行测试,但我认为它应该同样工作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | using System; using Microsoft.SqlServer.Types; using System.Data.SqlClient; using System.Data; namespace ConsoleApplication4 { class Program { static void Main() { var geom1 = SqlGeography.STGeomFromText( new System.Data.SqlTypes.SqlChars( "LINESTRING(-122.360 47.656, -122.343 47.656)"), 4326); var geom2 = SqlGeography.STGeomFromText( new System.Data.SqlTypes.SqlChars( "LINESTRING(-100.0 45.0, -1420 49.0)"), 4326); using(var conn = new SqlConnection( @"Server=Server;Database=master;Integrated Security=SSPI;")) { using (var cmd = new SqlCommand( "select @parm1.STIntersects(@parm2)", conn)) { var p1 = cmd.Parameters.Add("@parm1", SqlDbType.Udt); p1.UdtTypeName ="geography"; p1.Value = geom1; var p2 = cmd.Parameters.Add("@parm2", SqlDbType.Udt); p2.UdtTypeName ="geography"; p2.Value = geom2; conn.Open(); Console.WriteLine(cmd.ExecuteScalar()); } } Console.ReadLine(); } } } |
如果您使用的是实体框架,那么您搜索的数据类型是dbgeography。
下面是有关dbgeography对象->详细信息的更多信息。
是不是
命名空间:System.Data.Spatial程序集:system.data.entity(在system.data.entity.dll中)
https://msdn.microsoft.com/en-us/library/system.data.spatial.dbgeography.aspx