数据表中的c#geography列

Geo*_*rge 2 c# sql-server c#-4.0

我在c#中有一个数据表,我想添加一个列来存储地理格式的纬度和经度坐标,然后在sql server中进行批量复制.我应该以什么格式为此创建数据列?你能指导我吗?

Geo*_*rge 5

我们必须使用位于"C:\ Program Files(x86)\ Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.Types.dll"下的引用dll

using Microsoft.SqlServer.Types;
Run Code Online (Sandbox Code Playgroud)

之后我们可以在datatable中创建列,存储一些数据并通过bulkcopy将它们成功发送到sql server

DataTable dataTable = new DataTable();
dataTable.Columns.Add("Geom", typeof(SqlGeometry));

DataRow newRow = datatable.NewRow();
newRow["Geom"] = SqlGeometry.Point(lat, lon, 4326);

datatable.Rows.Add(newRow);

SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(connection);
sqlBulkCopy.DestinationTableName = "MySpatialDataTable";
sqlBulkCopy.WriteToServer(dataTable);
Run Code Online (Sandbox Code Playgroud)