gpt4 book ai didi

c# - 在某些情况下不会抛出 DuplicateKeyException

转载 作者:太空宇宙 更新时间:2023-11-03 16:26:32 24 4
gpt4 key购买 nike

我有两个 SQL 表,每个表都有一个由三个不同的整数字段组成的复合键。我添加了如下代码来向 Table1 添加一条记录。

try
{
Table1 newRow = new Table1
{
DomainID = domainID,
ConfigurationID = configID,
ReasonID = reasonID
};

data.Table1.InsertOnSubmit(newRow);
data.SubmitChanges();
}
catch(DuplicateKeyException)
{
// Message to user about no duplicates allowed.
}

这完全符合我的计划,如果用户试图添加重复的行,我会捕获异常,我可以向他们显示一条消息等。一切都很好。但是,我要插入到 Table2 的代码(这几乎是相同的,但是在使用不同 DataContext 的不同页面上),

try
{
Table2 newRow = new Table2
{
DomainID = domainID,
ConfigurationID = configID,
DirectionID = directionID
};

data.Table2.InsertOnSubmit(newRow);
data.SubmitChanges();
}
catch(DuplicateKeyException)
{
// Message to user about no duplicates allowed.
}

不抛出 DuplicateKeyException 而是抛出 SqlException。没什么大不了的,因为我仍然可以测试

e.Number = 2627

在捕获的 SqlException 上,但我只是对为什么它的工作方式不同感到困惑!?

最佳答案

肯定是你表2的定义有问题,具体是主键列就可以了。也许它有一个 Unique Constraint这就是它抛出异常的原因,但它肯定不是它的主键。

关于c# - 在某些情况下不会抛出 DuplicateKeyException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12409235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com