Benutzer mit den meisten Antworten
SqlDbType geometry

Frage
-
hi zusammen, ich hatte schon im englisch sprachigen forum gefragt wie man den sqldbtype geometry setzt.
Ich benutze aktuell vs2010,framework 4.0 and sql server 2008.
es wurde nur geantwortetUse SqlDbType.Udt , and set the user-defined type to typeof(SqlGeometry)
Gibt es dafür noch aktuell keine andere Lösung?
Gruss
Antworten
-
Hallo Michael,
meines Wissens haben die Spatial Datentypen noch nicht Einzug in die SqlDbTypes gehalten.
Neben der Möglichkeit mit Udt + UdtTypeName zu arbeiten, kann man auch NVarChar verwenden und den Wert aus .STAsText nehmen.Dim cnn As New SqlConnection("Server=MeinServer;Initial Catalog=TestDB;Trusted_Connection=TRUE") cnn.Open Dim geo As New SqlGeography geo = SqlGeography.Point(9.44, 52.22, 4326) Dim cmd As SqlCommand = cnn.CreateCommand cmd.CommandText = "INSERT INTO Orte (Geo) VALUES (@Geo);" Dim para as SqlParameter = cmd.CreateParameter para.ParameterName = "Geo" cmd.Parameters.Add(para) ' Als WKT cmd.Parameters(0).SqlDbType = System.Data.SqlDbType.NVarChar cmd.Parameters(0).Value = geo.STAsText cmd.ExecuteNonQuery() ' Als UDT cmd.Parameters(0).SqlDbType = System.Data.SqlDbType.Udt cmd.Parameters(0).UdtTypeName = "geography" cmd.Parameters(0).Value = geo cmd.ExecuteNonQuery()
Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de- Als Antwort vorgeschlagen Robert BreitenhoferModerator Mittwoch, 16. Februar 2011 07:53
- Als Antwort markiert michael floeter Donnerstag, 17. Februar 2011 14:43
Alle Antworten
-
Hallo Michael,
meines Wissens haben die Spatial Datentypen noch nicht Einzug in die SqlDbTypes gehalten.
Neben der Möglichkeit mit Udt + UdtTypeName zu arbeiten, kann man auch NVarChar verwenden und den Wert aus .STAsText nehmen.Dim cnn As New SqlConnection("Server=MeinServer;Initial Catalog=TestDB;Trusted_Connection=TRUE") cnn.Open Dim geo As New SqlGeography geo = SqlGeography.Point(9.44, 52.22, 4326) Dim cmd As SqlCommand = cnn.CreateCommand cmd.CommandText = "INSERT INTO Orte (Geo) VALUES (@Geo);" Dim para as SqlParameter = cmd.CreateParameter para.ParameterName = "Geo" cmd.Parameters.Add(para) ' Als WKT cmd.Parameters(0).SqlDbType = System.Data.SqlDbType.NVarChar cmd.Parameters(0).Value = geo.STAsText cmd.ExecuteNonQuery() ' Als UDT cmd.Parameters(0).SqlDbType = System.Data.SqlDbType.Udt cmd.Parameters(0).UdtTypeName = "geography" cmd.Parameters(0).Value = geo cmd.ExecuteNonQuery()
Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de- Als Antwort vorgeschlagen Robert BreitenhoferModerator Mittwoch, 16. Februar 2011 07:53
- Als Antwort markiert michael floeter Donnerstag, 17. Februar 2011 14:43