在期望的地方没有找到关键字
本文关键字:关键字 方没 期望 | 更新日期: 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 =)
假设要将结果的列命名为20120501
、20120502
和20120503
,则使用单引号而不是双引号。将查询更改为
SELECT EQPID, " +
" DECODE(CUTOFF_DATE, '20120501', SUM(TKINQTY))'"20120501'", " +
" DECODE(CUTOFF_DATE, '20120502', SUM(TKINQTY))'"20120502'", +...
-- ^^ ^^
来解决这个问题。注意,由于查询字符串在c#字符串中,双引号需要用反斜杠转义。