在SQL查询分析器中,我运行此语句,我没有收到错误:
string select = "SELECT " +
"aanvrager.werknemersnaam AS melder , hd_aanvragen.aanvraag_titel, " +
"hd_aanvragen.aanvraag_omschrijving, hd_aanvraag_fase.fase_datum, " +
"hd_melding_niveau_1.niveau_omschrijving AS 'Niveau 1', " +
"hd_melding_niveau_2.niveau_omschrijving AS 'Niveau 2', " +
"hd_aanvragen.outlook_id" +
"FROM hd_aanvragen " +
"INNER JOIN hd_meldingen ON hd_meldingen.melding_id = hd_aanvragen.melding_id " +
"INNER JOIN hd_melding_niveau_1 ON hd_melding_niveau_1.niveau1_id = hd_meldingen.niveau1_id " +
"INNER JOIN hd_melding_niveau_2 ON hd_melding_niveau_2.niveau2_id = hd_meldingen.niveau2_id " +
"INNER JOIN hd_aanvraag_fase ON hd_aanvraag_fase.aanvraag_id = hd_aanvragen.aanvraag_id " +
"INNER JOIN hd_statussen ON hd_statussen.status_id = hd_aanvraag_fase.status_id " +
"INNER JOIN hd_werknemers AS oplosser ON oplosser.werknemer_Id = hd_aanvraag_fase.werknemer_Id " +
"INNER JOIN hd_werknemers AS aanvrager ON aanvrager.werknemer_Id = hd_aanvragen.werknemer_Id " +
"WHERE hd_statussen.status_id = 16";
但是如果我在这里运行这个select语句:
MyDataSource.SelectCommand = select;
我收到此错误:关键字“INNER”附近的语法不正确。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Data.SqlClient.SqlException:关键字“INNER”附近的语法不正确。
答案 0 :(得分:5)
这一行最后缺少一个空格:
"hd_aanvragen.outlook_id" +
答案 1 :(得分:3)
看看这一点:
"hd_aanvragen.outlook_id" +
"FROM hd_aanvragen " +
所以你的SQL将包含:
hd_aanvragen.outlook_idFROM hd_aanvragen
我不认为你的意思是......(注意上面引用的第一行末尾没有空格)
建议:
使用逐字字符串文字,假设您的数据源可以在其SQL中处理换行符:
string select = @"SELECT
aanvrager.werknemersnaam AS melder , hd_aanvragen.aanvraag_titel,
hd_aanvragen.aanvraag_omschrijving, hd_aanvraag_fase.fase_datum,
hd_melding_niveau_1.niveau_omschrijving AS 'Niveau 1',
...
WHERE hd_statussen.status_id = 16";
另外,如果您要声明:
在SQL查询分析器中,我运行此语句,我没有收到错误
确保您实际运行相同的SQL查询。在调试器中复制select
的实际值,将其粘贴到SQL查询分析器中,您将看到完全相同的问题。
答案 2 :(得分:1)
我认为你错过了“FROM”之前的空白
"hd_aanvragen.outlook_id" +
"FROM hd_aanvragen "
答案 3 :(得分:1)
这是正确的源代码吗?比你错过线上的空格
"hd_aanvragen.outlook_id" +
这应该是
"hd_aanvragen.outlook_id " +