在期望的地方没有找到关键字

本文关键字:关键字 方没 期望 | 更新日期: 2023-09-27 18:14:06

我使用Microsoft Visual Studio c# 2005和Oracle作为我的数据库。我有一个代码块与SQL语句。

代码如下:

 con = new OracleConnection(conStr);
            con.Open();
 query = " SELECT EQPID, " + 
                    " DECODE(CUTOFF_DATE, '20120501', SUM(TKINQTY))'20120501', " +
 " DECODE(CUTOFF_DATE, '20120502', SUM(TKINQTY))'20120502', " + 
                    " DECODE(CUTOFF_DATE, '20120503', SUM(TKINQTY))'20120503'  " +
                    " FROM DAILY_DATA " +
                    " WHERE CUTOFF_DATE BETWEEN '20120501' AND '20120503' " +
                    " AND EQPID LIKE 'MS-%' " +
                    " GROUP BY CUTOFF_DATE, EQPID " +
                    " ORDER BY CUTOFF_DATE, EQPID";
 da = new OracleDataAdapter();
 da.SelectCommand = new OracleCommand(query, con);
            dt = new DataTable();
            da.Fill(dt);
            table.DataSource = dt;
 con.Close();

当我试图调试它时,我一直有错误消息:

From关键字未找到

但是当我在oracle上尝试时,它运行没有任何错误。

非常感谢。div =)

假设要将结果的列命名为201205012012050220120503,则使用单引号而不是双引号。将查询更改为

SELECT EQPID, " + 
" DECODE(CUTOFF_DATE, '20120501', SUM(TKINQTY))'"20120501'", " +
" DECODE(CUTOFF_DATE, '20120502', SUM(TKINQTY))'"20120502'", +...
--                                             ^^        ^^

来解决这个问题。注意,由于查询字符串在c#字符串中,双引号需要用反斜杠转义。

在期望的地方没有找到关键字