在MSSQL中将nvarchar转换为地理数据类型

时间:2014-09-16 17:10:11

标签: c# asp.net tsql

我从ASP.NET中的浏览器获取位置数据并尝试将其作为地理数据类型插入到SQL中,有没有办法在TSQL中将其转换为我可以将其作为NVarchar传递?

1 个答案:

答案 0 :(得分:0)

从您的代码中传递Well-Know Text,(WKT),然后您可以在SQL Server中使用STGeomFromText方法,如:

SELECT geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0)

在C#中你可以这样做:

string WKTRepresentation = "LINESTRING (100 100, 20 180, 180 180)";
using (SqlConnection conn = new SqlConnection("connectionString"))
using (SqlCommand cmd = new SqlCommand("SELECT geometry::STGeomFromText(@WKT, 0)", conn))
{
    conn.Open();
    cmd.Parameters.Add(new SqlParameter("@WKT", SqlDbType.NVarChar) { Value = WKTRepresentation });
    var reader = cmd.ExecuteReader();
}