将数组从js(jQuery)发送到sql存储过程的最佳方法是什么?层间传输阵列
层间传输阵列。 将数组从js(jQuery)发送到sql存储过程的最佳方法是什么? 你能分享你的想法吗 这概括了我前面的问题:将数组从js(jQuery)发送到sql存储过程的最佳方法是什么?层间传输阵列,jquery,asp.net-mvc-3,sql-server-2008,Jquery,Asp.net Mvc 3,Sql Server 2008,层间传输阵列。 将数组从js(jQuery)发送到sql存储过程的最佳方法是什么? 你能分享你的想法吗 这概括了我前面的问题: Js到MVC控制器 将数组从MVC发送到SQL的最佳方法。(尚待讨论) 这是一篇有趣的SQL测试文章。那么[表值参数]呢 我认为最好的方法是将数组作为 如何从MVC(任何c代码)向SP传递数组。在您的例子中,它是一个int[]数组,对吗 public static DataTable ConvertIntArrayToDataTable(IEnumerable
我认为最好的方法是将数组作为 如何从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;
}
创建接受此参数的过程:
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();
}
最后用approvitate参数调用proc:
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();
}
哇,太完美了!清晰易懂。非常感谢你!