你好我在C#中的这个查询有一个语法错误,我不知道是什么原因导致它,当我在Microsoft SQL Server 2012中查询时,我只是得到了数据,任何人都可以帮助我:
SqlConnection connectie = new SqlConnection("user id=;" +
"password=;server=;" +
"Trusted_Connection=false;" +
"database=; ");
SqlCommand statsDocenten = new SqlCommand("SELECT enquete_vraag as vraag,AVG(enquete_antwoord_radio) as gemiddelde_antwoord,docent,vak" +
"FROM ENQUETE_ANTWOORD " +
"LEFT JOIN KDV " +
"ON ENQUETE_ANTWOORD.kdv_ID = KDV.kdv_ID " +
"LEFT JOIN DOCENT " +
"ON KDV.docent_ID = DOCENT.docent_ID " +
"LEFT JOIN VAK " +
"ON KDV.vak_ID = VAK.vak_ID " +
"LEFT JOIN ENQUETE_VRAAG " +
"ON ENQUETE_ANTWOORD.enquete_vraag_ID = ENQUETE_VRAAG.enquete_vraag_ID " +
"WHERE DOCENT.docent_ID = " + docentid + " AND VAK.vak = " + vak + " AND ENQUETE_ANTWOORD.enquete_antwoord_radio != '' " +
"GROUP BY enquete_vraag,enquete_antwoord_radio,docent,vak", connectie);
我已经在“可能已经有您答案的问题”区域中检查了一堆问题,但我不知道哪个问题和答案会影响我的查询。
答案 0 :(得分:3)
您在vak
和FROM
之间的第一行错过了一个空格。
你绝对应该参数化你的查询(搜索它,你会发现“如何”和“为什么”)。另外,你可以更好地使用字符串前面的@符号(称为verbatim string),并且你可以使用多行字符串而不必连接它们:
string sql = @"
SELECT enquete_vraag as vraag,AVG(enquete_antwoord_radio) as gemiddelde_antwoord,docent,vak
FROM ENQUETE_ANTWOORD
LEFT JOIN KDV ...etc...";
答案 1 :(得分:1)
"...as gemiddelde_antwoord,docent,vak" + <----- you need a space here
"FROM ENQUETE_ANTWOORD " +
...
否则这些行读为
as gemiddelde_antwoord,docent,vakFROM ENQUETE_ANTWOORD