首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ADO.NET DataAdapter

ADO.NET DataAdapter
EN

Stack Overflow用户
提问于 2010-11-22 18:14:41
回答 1查看 773关注 0票数 1

在删除了一些行之后,调用dataAdapter上的update方法时出现了以下错误:

DELETE语句与引用约束"FK_Eleve_Classe“冲突。冲突发生在数据库"hogwarts“、表"dbo.Eleve”、列'FK_classID‘中。声明已被终止。

的确,这里定义了一个外键,但是既然主键位于"classe“表中,为什么不允许我删除"eleve”中的行呢?

也许它试图删除级联?(那么如何改变这一点呢?)

编辑1: SQL

代码语言:javascript
复制
CREATE TABLE [dbo].[Classe](
    [id] [int] NOT NULL,
 CONSTRAINT [PK_Classe] PRIMARY KEY CLUSTERED 
(
    [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]


CREATE TABLE [dbo].[Eleve](
    [id] [int] NOT NULL,
    [nom] [varchar](50) NULL,
    [prenom] [varchar](50) NULL,
    [birthdate] [date] NULL,
    [FK_classID] [int] NULL,
 CONSTRAINT [PK_Eleve] PRIMARY KEY CLUSTERED 
(
    [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]



ALTER TABLE [dbo].[Eleve]  WITH CHECK ADD  CONSTRAINT [FK_Eleve_Classe] FOREIGN KEY([FK_classID])
REFERENCES [dbo].[Classe] ([id])

编辑2:一些c#代码

代码语言:javascript
复制
 DataSet ds = new DataSet();

 c.Open(); // SqlConnection


 SqlDataAdapter da = new SqlDataAdapter("Select * from eleve", (SqlConnection)c);
 da.Fill(ds, "eleves");
 da.SelectCommand = new SqlCommand("select * from cours", (SqlConnection)c);
 da.Fill(ds, "COURS");
 da.SelectCommand = new SqlCommand("select * from professeur", (SqlConnection)c);
 da.Fill(ds, "PROF");
 da.SelectCommand = new SqlCommand("select * from classe", (SqlConnection)c);
 da.Fill(ds, "CLASSE");
 c.Close();


 ds.Tables["eleves"].Rows[0].Delete();

编辑3:删除

下面是我删除表中元素的方式:

代码语言:javascript
复制
ds.Tables["eleves"].Rows[0].Delete();

除了此之外,还必须手动设置deleteCommand吗?

是的,霍格沃茨,因为我正在做一个样本来解释它的一个有趣的方式;)

谢谢,

KiTe

EN

回答 1

Stack Overflow用户

发布于 2010-11-22 18:25:14

你有扳机吗?这是造成这种错误的通常原因。

如果eleve是一个具有类的子行的子表(例如,对于classe中的每一行,eleve中的行数为0到多行),则不应该发生此错误。除非FK走错了路

顺便说一句:一个级联是从父母到孩子的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4248721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档