日期:2014-05-17  浏览次数:20489 次

这事数据库作业,我纠结了,全是asp的,这是怎么回事?、
“/”应用程序中的服务器错误。
--------------------------------------------

违反了 PRIMARY KEY 约束 'PK_Table_1'。不能在对象 'dbo.Table_1' 中插入重复键。
语句已终止。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.SqlClient.SqlException: 违反了 PRIMARY KEY 约束 'PK_Table_1'。不能在对象 'dbo.Table_1' 中插入重复键。
语句已终止。

源错误: 


行 241: cmd.Connection = con;
行 242: con.Open();
行 243: cmd.ExecuteNonQuery();
行 244: Response.Redirect("Default.aspx");
行 245: }
 

源文件: C:\Users\oy\documents\visual studio 2010\Projects\WebApplication1\WebApplication1\Default.aspx.cs 行: 243 

堆栈跟踪: 
(上面为错误信息,下面为数据库里面表的定义)
USE [Yue]
GO
/****** 对象: Table [dbo].[Table_1] 脚本日期: 05/12/2012 09:37:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Table_1](
[no] [nchar](10) NOT NULL,
[name] [char](20) NOT NULL,
[age] [int] NOT NULL,
[college] [nchar](20) NOT NULL,
 CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED 
(
[no] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF

 
怎么改,怎么改

------解决方案--------------------
如果你需要添加重复的记录,那就不要设计主键,也就是去掉CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED
(
 [no] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
这部分。要么你在添加记录的时候no这个字段一定不能重复,也就是一个唯一值