为什么我在此数据库查询中收到列 header 错误,而不是使用传递的字符串进行过滤?

Why am I getting a column header error, instead of using a passed string to filter, in this database query?

提前致歉并致谢,学习 Visual Studio 和 SSMS 的第 3 天;

我正在尝试从数据库中检索具有匹配 "Language" 值的条目。我没有收到返回的条目,而是收到 "invalid column header" 错误,暗示我试图获取具有特定 header 的列,而不是包含特定值的条目。我当然知道我可能写错了我的查询,但我对这两种方式的了解都不够确定。我知道 "Language" 是 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();

希望返回所有匹配传入的{language}参数的运动记录的ExerciseId、ExerciseName、Language

感谢您的宝贵时间和协助!

尝试将语言参数括在引号内:

cmd.CommandText = $"SELECT ExerciseId, ExerciseName, Language FROM Exercise WHERE [Language] = '{language}'";