【问题标题】:Pass Arrays to SQL Functions from .NET C#从 .NET C# 将数组传递给 SQL 函数
【发布时间】:2009-07-24 21:46:50
【问题描述】:

有任何机会将数组从 .NET C# 传递给 SQL 函数。

提前致谢。

真诚的。

你能告诉我怎么做吗?

【问题讨论】:

    标签: c# arrays sql-server-2008


    【解决方案1】:

    对于 SQL Server 2008,是的,使用 table-valued parameters。使用 SQL Server 2005,您必须将数据包装在 XML 中,并在 T-SQL 函数中使用 XQuery 对其进行分解。

    注意:您只能将表值参数传递给存储的过程,而不是函数。

    来自链接:

     // Configure the SqlCommand and table-valued parameter.
     SqlCommand insertCommand = new SqlCommand(
       "usp_InsertCategories", connection);
     insertCommand.CommandType = CommandType.StoredProcedure;
     SqlParameter tvpParam = 
        insertCommand.Parameters.AddWithValue(
        "@tvpNewCategories", dataReader);
     tvpParam.SqlDbType = SqlDbType.Structured;
    

    【讨论】:

      【解决方案2】:

      Erland Sommarskog 有两篇关于如何在 SQL Server 2000 和 2005 中执行此操作的优秀文章:

      http://www.sommarskog.se/arrays-in-sql-2005.html

      http://www.sommarskog.se/arrays-in-sql-2000.html

      但是使用 SQL Server 2008 和表值参数,它会更好更容易,所以如果你在 2008 年,一定要使用 TVP!

      马克

      【讨论】:

        猜你喜欢
        • 2018-11-14
        • 2013-06-26
        • 2014-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多