c# - .net Framework 4.0 中地理 sql server 数据类型的 C# 等价物是什么?

标签 c# asp.net sql-server sql-server-2008 .net-4.0

使用 .net 4.0 框架的网络应用程序。

我有一个存储过程,它接受 sql server 2008 R2 中的地理数据类型。

我想将数据从 C# 代码插入到 SQL Server。

但我无法找到我应该在 C# 中使用哪种数据类型,该数据类型等同于 SQL Server 2008 数据类型。

最佳答案

这听起来很明显,但为什么不使用已在 SQL Server 中作为 UDT 安装的相同数据类型 - SqlGeography

以下内容适用于 SQL Server 2012 实例。我无法针对 SQL Server 2008 进行测试,但我认为它应该可以正常工作:

using System;
using Microsoft.SqlServer.Types;
using System.Data.SqlClient;
using System.Data;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main()
        {
            var geom1 = SqlGeography.STGeomFromText(
                        new System.Data.SqlTypes.SqlChars(
                        "LINESTRING(-122.360 47.656, -122.343 47.656)"), 4326);
            var geom2 = SqlGeography.STGeomFromText(
                        new System.Data.SqlTypes.SqlChars(
                        "LINESTRING(-100.0 45.0, -1420 49.0)"), 4326);
            using(var conn = new SqlConnection(
                  @"Server=Server;Database=master;Integrated Security=SSPI;"))
            {
                using (var cmd = new SqlCommand(
                    "select @parm1.STIntersects(@parm2)", conn))
                {
                    var p1 = cmd.Parameters.Add("@parm1", SqlDbType.Udt);
                    p1.UdtTypeName = "geography";
                    p1.Value = geom1;
                    var p2 = cmd.Parameters.Add("@parm2", SqlDbType.Udt);
                    p2.UdtTypeName = "geography";
                    p2.Value = geom2;
                    conn.Open();
                    Console.WriteLine(cmd.ExecuteScalar());
                }
            }
            Console.ReadLine();
        }
    }

}

关于c# - .net Framework 4.0 中地理 sql server 数据类型的 C# 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23292268/

相关文章:

使用 CharIndex 错误的 SQL 替换函数

c# - LINQ-To-SQL 如何防止 SQL 注入(inject)?

asp.net - jQuery 帮助 - 在当前表格单元格和相邻单元格中查找跨度

c# - 如何在动态数据 TableName 属性中使用 Resources.resx 文件中的字符串

c# - 使用 Google Analytics 跟踪文本框条目

c# - 像这样使用 C# Property 可以吗

c# - 将新的 aspx 页面添加到已发布的网站

asp.net - 这是防 Sql 注入(inject)的 Asp.net 代码吗?

SQL 确定具有相同成员的团队

c# - LINQ:何时使用编译查询?