2010-09-17 9 views
8

Welche SqlDbType-Aufzählung sollte ich verwenden, wenn meine Spalte der Geography-Typ ist? Ich benutze MS SQL Server 2008 R2.SqlDbType und Geografie

Dies ist, was ich suche, konkret: diese

// 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.????); 

Antwort

0

aktualisieren

Versuchen:

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

von Inserting SQL 2008 Geometry With a SqlCommand Genommen

11

SqlGeography ist im gänzt als CLR benutzerdefinierten Typ von SQL Server, so dass Sie etwas ein wenig wie zu tun:

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(); 
} 

Wenn es sich um eine Desktop-Anwendung ist, dass Sie es haben ziemlich viel einfacher. Es gibt ein gutes Beispiel in der Code Project eines SQL Geometry Viewers, der sowohl für den Desktop als auch für das Web hilfreich ist.

Sie müssen auf Microsoft.SqlServer.Types.dll verweisen, die Sie in SQL Server Install/100/SDK/Assemblys finden, um SQLGeometry oder SQLGeography direkt zu verwenden.

+2

Es gibt auch ein NuGet-Paket mit der erforderlichen Assembly: [Microsoft.SqlServer.Types (Spatial)] (http://www.nuget.org/packages/Microsoft.SqlServer.Types/) – Sam

Verwandte Themen