如何将数组作为存储过程的参数传递

How to pass array as parameter for stored procedure

提问人:richamegha khatua 提问时间:4/12/2023 最后编辑:Yong Shunrichamegha khatua 更新时间:4/13/2023 访问量:104

问:

我有一个像这样的函数

SELECT * from "transaction".stp_txn_gettxndetails(0,0,3,cast('2005-03-01' as date),cast('2023-03-28' as date),ARRAY[10063],0,0,0,'0',0);

但我无法作为参数传递。ARRAY[10063]

public long[] p_transactionids { get; set; } 
parameters.Add("p_transactionids", entity.p_transactionids, DbType.Int64, ParameterDirection.Input);

这就是我将值作为参数传递的方式。

C# SQL 存储过程 传递 dapper

评论

0赞 Community 4/13/2023
请澄清您的具体问题或提供其他详细信息,以准确说明您的需求。正如目前所写的那样,很难确切地说出你在问什么。

答:

1赞 Yong Shun 4/13/2023 #1

根据 Dapper 文档,您应该使用 Dapper 的匿名类型参数。

var parameters = new 
{ 
    p_transactionids = entity.p_transactionids
};

另一种方法是根据本文构建类型的字典。Dictionary<string, object>

var dictParameters = new Dictionary<string, object>()
{
    ["p_transactionids"] = entity.p_transactionids
};

var parameters = new DynamicParameters(dictParameters);

// Add other params. Example:
// dynamicParameters.AddDynamicParams(new { name = "The Matrix" });