我正在做一个项目,但遇到了瓶颈。我的代码将具有某种类型的日期添加到数据库中,但是当代码中已经存在类似的条目时,我需要创建一个错误。但是,我无法让我的循环检查重复项,而是添加重复项!我不太擅长循环,所以我有点卡在这上面。任何帮助检查重复条目并阻止它创建太多的帮助将是一个很大的帮助!在此文本区域内更改了我的代码,因此它不是完全相同的变量名称。
这是我的代码:-
if (DT != null && DT.Length > 0 || DF != null && DF.Length > 0)
{
for (int t = 0; t < Type.Length; t++)
{
DateTime checkDate;
if (Type.IsSelectionValid(8, out typeError) && DateTime.TryParse(DF, out typeError) && DateTime.TryParse(DT, out checkDate))
{
TypeValid = true;
error.Error = false;
}
else
{
error.Errors = "Type-Invalid";
absenceTypeValid = false;
break;
}
}
else
{
error.Errors = "Type-Duplicate";
TypeValid = false;
break;
}
}
}
最佳答案
我“相当”确定您会竭尽全力让问题变得比这里更难,但我不能肯定地说,因为我不完全确定这是在做什么。
但这里是到达您的类型重复错误行需要满足的条件:
1) DT 或 DF 必须不为空才能通过第一个 if 语句
2) IsSelectionValid() 必须返回 false,或者 DT 或 DF 必须是无效的 DateTime。
这些东西都不构成重复。
让我尝试解释一下我在这里看到的内容:
我首先看到的变量叫做DT、DF。我可以看到这些是日期,但我只知道这些。我看到“类型”,我对它的了解甚至比 DT 和 DF 还少。我看到您正在为 Type.Length 迭代次数做一个循环...但是如果我不知道 Type 是什么,这对我意味着什么?
如果您有评论来解释事情是什么,我“可能”能够帮助您,但确实没有足够的信息来了解这里发生的事情。
如果你只是想知道如何避免向数据库中添加重复项,那么我建议向数据库中的列添加一个约束或索引,然后你就可以捕获当你尝试插入一个列时抛出的异常复制并以这种方式处理。或者,在您的插入语句中考虑它。
关于C#/SQL 检查重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8120545/