2010-09-17 39 views
8

當我的列是地理類型時,應該使用什麼SqlDbType枚舉?我正在使用MS SQL Server 2008 R2。SqlDbType和地理

這就是我要找的具體做法是:

// ADO.net - what do I use for the SqlDbType when it's defined 
// as Geography in the stored proc 
SqlCommand command = new SqlCommand(); 
command.CommandText = "dbo.up_Foobar_Insert"; 
command.CommandType = CommandType.StoredProcedure; 

command.Parameters.Add("@SomeGeographyType", SqlDbType.????); 

回答

0

更新

試試這個:

//define parameter 
command.Parameters.Add("@shape", SqlDbType.NVarChar); 
// 
//code in between omitted 
// 
//set value of parameter 
command.Parameters["@shape"].Value = feature.Geometry.AsText(); 

Inserting SQL 2008 Geometry With a SqlCommand兩者

11

SqlGeography是IM plemented爲CLR用戶定義類型的SQL服務器,這樣你就可以做一些事情有點像:

SqlGeography geo = // Get the geography from somewhere... 

using (SqlCommand command = 
    new SqlCommand(@"dbo.up_Foobar_Insert", connection)) 
    command.Parameters.Add(new SqlParameter("@Point", geo) { UdtTypeName = "Geography" }); 
    command.ExecuteNonQuery(); 
} 

如果你有它相當簡單一點的桌面應用程序。在SQL Geometry查看器的Code Project上有一個很好的例子,它可以幫助桌面或網頁。

您需要引用Microsoft.SqlServer.Types.dll,在SQL Server Install/100/SDK/Assemblies中找到,以直接使用SQLGeometry或SQLGeography。

+2

還有一個NuGet包需要的程序集:[Microsoft.SqlServer.Types(Spatial)](http://www.nuget.org/packages/Microsoft.SqlServer.Types/) – Sam 2014-08-25 23:00:46