【问题标题】:How to code lowercase query oracle 11g in C#?如何在 C# 中编写小写查询 oracle 11g?
【发布时间】:2016-04-28 17:08:03
【问题描述】:

在本例中,我使用 Oracle 11g 和 Devexpress。我有一个名为 Employee 的表,它有 3 个字段(Id、Name、Address)。当我使用 Oracle Query 在 Navicat 中显示数据时,它工作正常。

SELECT Id, Name, Address FROM Employee 

但是当我在 C# 中使用该查询时,该查询不起作用,这是我的代码:

OracleCommand cmd = new OracleCommand();
OracleDataAdapter adp = new OracleDataAdapter(@"SELECT Id, Name, Address FROM Employee", connection.con);
DataSet ds = new DataSet();
adp.Fill(ds, "Employee");
gridControl1.DataSource = ds.Tables[0];

我猜我的 C# 中的 oracle 查询语法无法识别小写语法。也许必须是大写的。关于如何在 C# 中解决这个小写语法问题有什么建议吗?

【问题讨论】:

  • 你说的不起作用到底是什么意思?您收到任何异常或错误消息?
  • 我遇到了这样的错误ORA-00904: \"Id\": invalid identifier
  • 可能是排序规则问题?你试过写成id吗?

标签: c# sql oracle11g


【解决方案1】:

试试这个代码:

OracleDataAdapter adp = new OracleDataAdapter(@"SELECT ""Id"", ""Name"", ""Address"" FROM ""Employee"" ", connection.con);

【讨论】:

    【解决方案2】:

    ORA-00904 错误表示列名无效或缺失。请更正您的查询。

    【讨论】:

      【解决方案3】:

      ID 和 NAME 是 oracle 限制的词,不应用作列名,因为这可能会产生一些问题 - 可能就是这种情况。要显式调用这些列,请使用“”,例如:

      SELECT "Id", "Name", Address FROM Employee 
      

      【讨论】:

        猜你喜欢
        • 2010-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-14
        • 1970-01-01
        相关资源
        最近更新 更多