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