首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Dapper和“?”

用Dapper和“?”
EN

Stack Overflow用户
提问于 2013-03-22 21:17:41
回答 1查看 2.1K关注 0票数 2

我试图使用Dapper与DB2服务器进行通信。DB2服务器不支持开箱即用的命名参数。它希望在查询中为每个参数指定一个问号。有什么办法支持Dapper的吗?也许Dapper可以在调用查询之前用?替换所有的?内容?如果是的话,Dapper是否按顺序生成参数?

如果不是,更新的DB2客户端驱动程序似乎支持命名参数,但默认情况下是关闭的。我不知道怎么打开它。我尝试将该参数添加到我的客户机上的db2cli.ini公共部分,而不改变行为。那是给OleDB司机的。

更新:然后我尝试了.NET驱动程序。它似乎解析了变量名,但在运行时仍然出现了一个奇怪的错误:

{"ERROR 07004DB2/ not 64 SQL0313N执行语句中的变量数、OPEN语句中的变量数或参数化游标的OPEN语句中的参数数不等于所需的值数“}。

我的声明如下:

代码语言:javascript
复制
INSERT INTO XD.ALERT (PERFORMANCE_ID, CATEGORY, TITLE, DESCRIPTION, DATETIME) VALUES(1234, :Level, :AlertID, :AlertDesc, :DateTime)

插入是否算为执行?据我所知,我在查询中有四个参数,在使用的命令对象中有四个参数。(我直接使用SqlMapper.cs,可以看到调试器中的所有内容。)

EN

回答 1

Stack Overflow用户

发布于 2019-02-25 20:38:49

你可以试试这个:

代码语言:javascript
复制
    public void SaveAlert(int? level, int? alertId, string alertDesc, DateTime date)
    {            
        _conn.Execute("INSERT INTO XD.ALERT(PERFORMANCE_ID, CATEGORY, TITLE, DESCRIPTION, DATETIME) VALUES(1234, @Level, @AlertID, @AlertDesc, @DateTime)",                
            new {
                Level = level,
                AlertId = alertId,
                AlertDesc = alertDesc,
                DateTime = date
            });
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15580001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档