gpt4 book ai didi

jquery - 将数组从 js (jQuery) 发送到 sql 存储过程的最佳方法是什么?阵列层间传输

转载 作者:行者123 更新时间:2023-12-01 05:01:57 24 4
gpt4 key购买 nike

阵列在层之间传输。

将数组从 js (jQuery) 发送到 sql 存储过程的最佳方法是什么?您能分享一下您的想法吗?

这概括了我之前的问题:

  1. J 到 MVC Controller 。

    https://stackoverflow.com/a/9109671/1145224

  2. 将数组从 MVC 发送到 SQL 的最佳方式。 (仍有待讨论)

  3. 还有这篇有趣的 SQL 测试文章。 [表值参数]怎么样?

    http://www.adathedev.co.uk/2010/02/sql-server-2008-table-valued-parameters.html

最佳答案

我认为最好的方法是将数组发送为 Table-Valued Parameter

如何从 MVC(任何 C# 代码)将数组传递到 SP。在你的例子中,它是一个 int[] 数组,对吗?

public static DataTable ConvertIntArrayToDataTable(IEnumerable<int> array, bool AllowNull = false)
{
var dt = new DataTable();
dt.Columns.Add(new DataColumn("Value", typeof(int)) { AllowDBNull = AllowNull });
foreach(var i in array)
dt.Rows.Add(i));
return dt;
}

您还必须实现 User Defined Table Type

CREATE TYPE IntArray AS TABLE
(
Value int not null
)

创建接受此参数的过程:

CREATE PROCEDURE YourProc
@DataArray IntArray READONLY
AS
BEGIN
SELECT Value FROM @DataArray
END

最后使用适当的参数调用过程:

void CallProc(int[] array)
{
// assuming there is exisis already created connection and command named sqlCommand

sqlCommand.CommandText = "YourProc";
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.Parameters.Clear();
sqlCommand.AddWithValue("@DataArray", ConvertIntArrayToDataTable(array));
sqlCommand.ExecuteNonQuery();
}

关于jquery - 将数组从 js (jQuery) 发送到 sql 存储过程的最佳方法是什么?阵列层间传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9111093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com