Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SqlDbType and Geography

What SqlDbType enumeration should I use when my column is the Geography type? I'm using MS SQL Server 2008 R2.

This is what I'm looking for specifically:

// 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.????);
like image 284
Dismissile Avatar asked Sep 17 '10 15:09

Dismissile


1 Answers

SqlGeography is implemented as a CLR user defined type by SQL Server, so you can do something a little like:

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

If it is a desktop application you've got it quite a bit easier. There is a good example at the Code Project of an SQL Geometry viewer that will help for both desktop or web.

You need to reference Microsoft.SqlServer.Types.dll, found at SQL Server Install/100/SDK/Assemblies to use SQLGeometry or SQLGeography directly.

like image 158
Rowland Shaw Avatar answered Sep 18 '22 11:09

Rowland Shaw