String sql = "update stuInfo set 学院 = '"+college+"' ,专业 = '"+profession+"' ,姓名 = '"+name+"' where 学号 = '"+id+"'";
其中
String college = new String(request.getParameter("college").getBytes("ISO-8859-1"),"UTF-8");
     String profession = new String(request.getParameter("profession").getBytes("ISO-8859-1"),"UTF-8");
     String id = new String(request.getParameter("id").getBytes("ISO-8859-1"),"UTF-8");
     String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
报错
javax.servlet.ServletException: 违反了 PRIMARY KEY 约束 'PK_stuInfo'。不能在对象 'dbo.stuInfo' 中插入重复键。

解决方案 »

  1.   

    你在执行这条sql语句时是用的executeUpdate()吗?
      

  2.   

    恩 为了 方便测试 是中文字段   是用的executeUpdate()   就一个表哪里有外键约束呢
      

  3.   

    讲insert into 改成 replace into 就好了
      

  4.   


    你的update语句并没有修改pk!   所以你先确定你的id是否真的被获取了     其次确定你的id在数据库中是否也为字符串类型?    如果数据库中字符不为字符串,就得将id转变成相应类型  假设id为int类型:那么 String sql = "update stuInfo set 学院 = '"+college+"' ,专业 = '"+profession+"' ,姓名 = '"+name+"' where 学号 = "+id ;