首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Oracle.DataAccess.Client.OracleException: ORA-00936:缺少表达式

Oracle.DataAccess.Client.OracleException: ORA-00936:缺少表达式
EN

Stack Overflow用户
提问于 2016-11-04 13:53:11
回答 1查看 3.9K关注 0票数 1

我写了一个C#控制台程序,试图从Oracle中查询一些数据,这是一个非常简单的查询,但我不知道为什么它总是在运行时告诉我“缺少表达式”,请参见下面的代码

代码语言:javascript
运行
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Oracle.DataAccess.Client;
using System.Configuration;

namespace ConnectToOracle
{
    class Program
    {
        static void Main(string[] args)
        {

            string strCon = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;

            using (OracleConnection oc = new OracleConnection(strCon))
            {
                OracleCommand cmd = new OracleCommand("select dname from dept where deptno = @deptno", oc);
                OracleParameter op = new OracleParameter();
                op.ParameterName = "@deptno";
                op.OracleDbType = OracleDbType.Int32;
                op.Direction = System.Data.ParameterDirection.Input;

                cmd.Parameters.Add(op);
                oc.Open();
                string dname = (string)cmd.ExecuteScalar();
           }
        }
    }
}

所以,在最后一行,cmd.ExecuteScalar()方法将抛出错误"missing expression“,谁能告诉我为什么?我当时很困惑

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2016-11-04 14:29:43

使用:而不是@

代码语言:javascript
运行
复制
 OracleCommand cmd = new OracleCommand("select dname from dept where deptno = :deptno", oc);
                OracleParameter op = new OracleParameter();
                op.ParameterName = "deptno";
                op.OracleDbType = OracleDbType.Int32;
                op.Direction = System.Data.ParameterDirection.Input;

参考:OracleCommand.Parameters Property

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40416130

复制
相关文章

相似问题

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