Почему я получаю сообщение об ошибке заголовка столбца вместо использования пропущенной строки для фильтрации в этом запросе к базе данных? - PullRequest
0 голосов
/ 08 мая 2019

Извинения и заранее спасибо, 3-й день обучения Visual Studio и SSMS;

Я пытаюсь получить записи из базы данных, которые имеют соответствующее значение «Язык».Вместо того, чтобы получать записи обратно, я получаю сообщение об ошибке «неверный заголовок столбца», которое указывает на то, что я пытался получить столбец с определенным заголовком вместо записей, которые содержат определенное значение.Я, конечно, знаю, что мог написать свой запрос неправильно, но я не знаю достаточно об этом в любом случае, чтобы быть уверенным.Я понимаю, что «язык» является зарезервированным словом в SQL, но я думаю, что использовал правильный синтаксис, чтобы позволить БД быть построенной с его использованием.Мой запрос выглядит следующим образом:

public List<Exercise> GetExercisesByLanguage(string language)
 {
   using (SqlConnection conn = Connection)
    {
      conn.Open();
      using (SqlCommand cmd = conn.CreateCommand())
       {
         cmd.CommandText = $"SELECT ExerciseId, ExerciseName, Language FROM Exercise WHERE [Language] = {language}";
         SqlDataReader reader = cmd.ExecuteReader();

Я надеюсь, что вернул ExerciseId, ExerciseName и Language всех записей упражнений, которые соответствуют переданному параметру {language}.

Спасибо заВаше время и помощь!

1 Ответ

2 голосов
/ 08 мая 2019

Попробуйте заключить языковой параметр в кавычки:

cmd.CommandText = $"SELECT ExerciseId, ExerciseName, Language FROM Exercise WHERE [Language] = '{language}'";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...