SqlException: неправильный синтаксис рядом с ключевым словом «AS» - PullRequest
0 голосов
/ 09 июня 2011

Я проверил параметры и поля, ничего не написано неправильно, но я все еще получаю эту ошибку ..

        StringBuilder sb = new StringBuilder();
    sb.Append("SELECT u.Name,t.ThreadTitle,t.Date, t.Views,t.Replies,p.Theme,p.Topics,t.PageNumber");
    sb.Append("FROM Users AS u");
    sb.Append("INNER JOIN Threads AS t ON u.UserID=t.UserID");
    sb.Append("INNER JOIN Topics AS p ON p.TopicID=t.TopicID");
    sb.Append("WHERE u.UserID=@UserID");
    sb.Append("ORDER BY t.Date");

Еще один вопрос будет ЗАКАЗАТЬ по дате работы .. это поле типа TimeDate, насколько я помню.

Ответы [ 3 ]

3 голосов
/ 09 июня 2011

Между "Users AS u" и "INNER JOIN" нет пробела. Добавить пробелы:

StringBuilder sb = new StringBuilder();
sb.Append("SELECT u.Name,t.ThreadTitle,t.Date, t.Views,t.Replies,p.Theme,p.Topics,t.PageNumber ");
sb.Append("FROM Users AS u ");
sb.Append("INNER JOIN Threads AS t ON u.UserID=t.UserID ");
sb.Append("INNER JOIN Topics AS p ON p.TopicID=t.TopicID ");
sb.Append("WHERE u.UserID=@UserID ");
sb.Append("ORDER BY t.Date"); 

В качестве альтернативы, используйте разрывы строк, вызывая AppendLine вместо Append.

Еще лучше, поскольку это всего одна длинная строка, используйте дословную строку:

var sql = @"
SELECT u.Name,t.ThreadTitle,t.Date, t.Views,t.Replies,p.Theme,p.Topics,t.PageNumber
FROM Users AS u
INNER JOIN Threads AS t ON u.UserID=t.UserID
INNER JOIN Topics AS p ON p.TopicID=t.TopicID
WHERE u.UserID=@UserID
ORDER BY t.Date";
1 голос
/ 09 июня 2011

Вы добавляете все в одну строку.Добавьте пробел или используйте AppendLine вместо Append.

0 голосов
/ 09 июня 2011

Попробуйте это:

StringBuilder sb = new StringBuilder();
sb.Append("SELECT u.Name,t.ThreadTitle,t.Date, t.Views,t.Replies,p.Theme,p.Topics,t.PageNumber");
sb.Append(" FROM Users AS u");
sb.Append(" INNER JOIN Threads AS t ON u.UserID=t.UserID");
sb.Append(" INNER JOIN Topics AS p ON p.TopicID=t.TopicID");
sb.Append(" WHERE u.UserID=@UserID");
sb.Append(" ORDER BY t.Date");

И да, orderby должен работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...