加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在ASP.net应用程序中使用Informix查询中的命名参数

发布时间:2020-12-16 01:53:34 所属栏目:百科 来源:网络整理
导读:我正在尝试将我的查询转换为参数化,但是在查找语法时遇到了问题.根据VS2012,这是没有错误的,但是在运行时我得到一个错误,因为参数的值没有被替换到查询中. 这是示例代码: IfxCommand query = new IfxCommand("SELECT slm_slmno FROM slmmas WHERE slm_logon
我正在尝试将我的查询转换为参数化,但是在查找语法时遇到了问题.根据VS2012,这是没有错误的,但是在运行时我得到一个错误,因为参数的值没有被替换到查询中.

这是示例代码:

IfxCommand query = new IfxCommand("SELECT slm_slmno FROM slmmas WHERE 
    slm_logon = @Logon");
query.Parameters.Add("@Logon",logon);

以下是运行时查询返回的错误:

Error Message = ERROR [42000] [Informix .NET provider][Informix]A syntax 
    error has occurred.
Sql Query = SELECT slm_slmno FROM slmmas WHERE slm_logon = @Logon

从错误中可以清楚地看出,登录的值没有被替换为命令.我正在使用Informix 10.0.我查看了文档(位于http://publib.boulder.ibm.com/infocenter/idshelp/v111/index.jsp?topic=/com.ibm.net_cc.doc/dqx1db2commandclass.htm),但没有明确的示例显示我正在尝试实现的简单用法.关于我如何更好地处理这个问题的任何建议?

解决方法

根据 http://publib.boulder.ibm.com/infocenter/idshelp/v117/index.jsp?topic=%2Fcom.ibm.netpr.doc%2Fids_net_115.htm给出的示例,您可以重写您的查询,如下所示:

IfxCommand query = new IfxCommand("SELECT slm_slmno FROM slmmas WHERE 
    slm_logon = ?");
IfxParameter ifxp1 = new IfxParameter("Logon",DbType.String);
query.Parameters.Add(ifxp1);
ifxp1.Value = "your value";

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读