我利用控件GridView的删除功能,删除一个记录的时候出现的错误,请各位不吝赐教,谢谢!异常详细信息: System.Data.SqlClient.SqlException: DELETE 语句与 REFERENCE 约束"FK_Results_students"冲突。该冲突发生于数据库"studentinfo",表"dbo.Results", column 'studentID'。
语句已终止。
还有,在SQL2005里是不是同一个主键只能有一条记录,比如:已有“2004431,李三,男,计算机应用,86”这么一条记录,学号(2004431)是主键,在这个表中是不是就不能再有一个2004431的记录?我这个表是存放成绩的,一个学号应该是有多个成绩(多条记录)才对的...错误提示:...不能在'表名'中插入重复键...

解决方案 »

  1.   

    在SQL2005里是不是同一个主键只能有一条记录,是的
      

  2.   


    语法:
    set identity_insert [database] {table} {on|off}
    语句:
    set identity_insert [studentinfo] dbo.Results on
      

  3.   

     System.Data.SqlClient.SqlException: DELETE 语句与 REFERENCE 约束"FK_Results_students"冲突
    ------------------------------------------------------------------------------------------
    主外键约束,当其他表的记录引用了'studentID’这个列的话,而且你设置了主外键约束,那么你当然就删除不了。
    在这个表中是不是就不能再有一个2004431的记录?
    ----------------------------------------------
    对!主键,就是能唯一确定一条记录。一个学号应该是有多个成绩(多条记录)才对的... -------------------------------
    没错,这样就说明你的数据库设计有问题了
    你可以这样设置学生表   课程表    学生选课表学生选课表的两个外键就是学生表和课程表的主键那么你就可以使一个学号有多个成绩了
    LZ要看看数据库的基础知识了。
      

  4.   

    当其他表的记录引用了'studentID’这个列的话,而且你设置了主外键约束,那么你当然就删除不了。 
    -------------------------------
    引用了'studentID’这个列的某行的话
      

  5.   

    LZ数据库基础得多看,表设计需满足范式相关要求,你这个表应该算最基础的,先设计一个学生表(学号,姓名,年龄等等),然后课程表(课程ID,课程名),然后成绩表(学号,课程ID,成绩),大概结构思路就是这样,希望对你有帮助!=.=