为什么我会在此数据库查询中获得列标题错误,而不是使用传递的字符串进行过滤



道歉,并提前感谢学习Visual Studio和SSM的第3天;

我试图从具有匹配的"语言"值的数据库中检索条目。我没有收到条目,而是收到一个"无效的列标头"错误,该错误暗示了我试图获得带有特定标头的列,而不是包含特定值的条目。我当然知道我本来可以错误地编写我的查询,但是无论哪种方式我都不了解。我确实知道"语言"是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}参数符合的所有练习记录的练习,练习和语言。

感谢您的时间和帮助!

尝试包装引号内的语言参数:

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

最新更新