Dapper Postgresql not in

Dapper Postgresql not in

NOT IN等价于<> ALL。

var sql = "SELECT * FROM Invoice WHERE Kind <> ALL(@Kind);";

using (var connection = My.ConnectionFactory())
{
    connection.Open();

    var invoices = connection.Query<Invoice>(sql, new {Kind = new[] {InvoiceKind.StoreInvoice, InvoiceKind.WebInvoice}}).ToList();
}

参考官网9.22.5. ALL

.net framework 4.0 web forms vb pgsql 15.13 這是pgsql中一個存儲過程的頭部定義 CREATE OR REPLACE PROCEDURE bts.insertdndata( IN p_855id bigint, IN p_qty integer, IN p_user character varying, OUT result character varying) LANGUAGE 'plpgsql' AS $BODY$ 這是vb中的傳參調用方式 public static string InsertDNdata(string p_855id, string p_DNQty, string p_user) { var parameters = new NpgsqlParameter[] { new NpgsqlParameter("p_855id", NpgsqlDbType.Bigint) { Value = p_855id }, new NpgsqlParameter("p_qty", NpgsqlDbType.Integer) { Value = p_DNQty }, new NpgsqlParameter("p_user", NpgsqlDbType.Varchar, 200) { Value = p_user }, new NpgsqlParameter("result", NpgsqlDbType.Varchar) { Direction = ParameterDirection.ReturnValue }, }; return DbHelper.ExecuteStoredProcedure("InsertDNdata", parameters); } public static string ExecuteStoredProcedure(string procedureName, params NpgsqlParameter[] parameters) { using (var conn = new NpgsqlConnection(_connection)) { conn.Open(); var paramNames = string.Join(", ", parameters.Select(p => $"@{p.ParameterName}")); var callCommand = $"CALL {procedureName}({paramNames})"; using (var cmd = new NpgsqlCommand(callCommand, conn)) { cmd.CommandType = CommandType.Text; cmd.Parameters.AddRange(parameters); using (var transaction = conn.BeginTransaction()) try { cmd.ExecuteNonQuery(); transaction.Commit(); } catch(Exception ex) { transaction.Rollback(); return ex.Message; } return parameters.First(p => p.Direction == ParameterDirection.ReturnValue).Value?.ToString(); } } } 是有問題的,會報錯result不存在 我該如何修正?(必須用存儲過程) 代碼極簡化風格
最新发布
08-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值