必须声明标量变量@求帮助

必须声明标量变量
        using (SqlConnection con = new SqlConnection())
        {
        
            string ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            con.ConnectionString = ConnectionString;
            con.Open();
            string sql = string.Format("update [1_2_gchoice] set 小组编号=@小组编号,第一志愿=@第一志愿 ,第二志愿=@第二志愿,第三志愿=@第三志愿 where 小组编号= @小组编号1", 
                                                                      m_gchoice.小组编号, m_gchoice.第一志愿, m_gchoice.第二志愿, m_gchoice.第三志愿, m_gchoice.小组编号);
            SqlParameter 小组编号 = new SqlParameter("@小组编号", m_gchoice.小组编号);
            SqlParameter 第一志愿 = new SqlParameter("@第一志愿", m_gchoice.第一志愿);
            SqlParameter 第二志愿 = new SqlParameter("@第二志愿", m_gchoice.第二志愿);
            SqlParameter 第三志愿 = new SqlParameter("@第三志愿", m_gchoice.第三志愿);
          //  SqlParameter 专业 = new SqlParameter("@专业", m_teacher.专业);
         //   SqlParameter 研究方向 = new SqlParameter("@研究方向", m_teacher.研究方向);
            SqlParameter 小组编号1 = new SqlParameter("@小组编号", m_gchoice.小组编号);

            SqlCommand sc = new SqlCommand(sql, con);
            sc.Parameters.Add(小组编号);
            sc.Parameters.Add(第一志愿);
            sc.Parameters.Add(第二志愿);
            sc.Parameters.Add(第三志愿);
            //sc.Parameters.Add(专业);
            //sc.Parameters.Add(研究方向);
          // sc.Parameters.Add(工号1);
            int res = sc.ExecuteNonQuery();
            if (res > 0)
            {
                br = 1;
            }
            else
            {
                br = 0;
            }
        }
        return br;
    }
}

}

img

@小组编号1多了个1吧

我看不出代码有什么明显的错误。
但是,我注意到在调用 string.Format 方法时,传递的参数数量与占位符的数量不一致。此外,在定义 SQL 语句的占位符时,使用的是 @ 符号,而在调用 SqlParameter 构造函数时,使用的是 @ 符号加参数名的形式(例如 @小组编号)。这两点都需要注意。
此外,建议将 SQL 语句放在一个单独的字符串常量中,这样可以避免出现问题,更容易阅读和维护