【问题标题】:Duplicate check before adding [duplicate]添加前重复检查[重复]
【发布时间】:2014-06-09 16:12:58
【问题描述】:

我想向大家道歉。

谢谢大家。

似乎我错过了一个我什至没有注意到的愚蠢的 varcking var。 我以为是我的支票坏了,但没有,我在上述方法中错过了一个 var,所以它只是不断地说是的,这是真的 -.- 感谢大家的帮助

【问题讨论】:

  • 您是否在最后一个 if 语句周围缺少大括号?缩进错误/不清楚。
  • 可以发InsertItemIntoReceivedBoxesTable的方法吗?您检查的列是否正确?
  • 如果您在重复检查上设置断点,这会告诉您什么?
  • 它只是返回true,我检查了调试器,没关系。我放弃了,这个网站只知道与gridview无关的东西

标签: c# asp.net


【解决方案1】:

您必须在每次检查后添加return;。因为现在您进行了检查,但之后没有任何东西可以阻止您执行代码。你必须这样做:

protected void BoxReceivedClick(object sender, EventArgs e)
{
    if (lblSupporterId.Text == "")
    {
        lblNotRawConsignmentNumber.Text = "Cannot Insert! Missing SupporterId";
        return;
    }
    else if (lblConsignmentNumber.Text == "")
    {
        lblNotRawConsignmentNumber.Text = "Cannot Insert! Missing Consignment Number";
        return;
    }
    else if (lblCollectionRequestId.Text == "")
    {
        lblNotRawConsignmentNumber.Text = "Cannot Insert! Missing Collection Request ID";
        return;
    }
    else if (Istest())
    {
        return;
    }

    InsertItemIntoReceivedBoxesTable(lblSupporterId.Text, txtReferenceNumber.Text, lblCollectionRequestId.Text);
    BindReceivedBoxes();
    ClearLabels();
}

【讨论】:

  • 我按照你说的做了,但是现在根本不行。不添加任何东西
  • 你采纳了拜伦的建议吗?
  • 我都做了,都没有工作
  • 单击按钮时的行为是什么?
  • 它只是一个按钮,一旦点击它就会执行它所告诉的操作..
【解决方案2】:

实际上,您的Istest() 方法在找不到重复项时返回true,否则返回false

return !isDuplicate;

从 return 语句中删除 !

【讨论】:

  • 试过了,但没用。
【解决方案3】:

Dennis_E 的回答是正确的。代码“lblNotRawConsignmentNumber.Text = "BLAH";isDuplicate = true; break;" 周围应该有大括号。方法IeTest()会第一次返回true,然后一直返回false。

【讨论】:

  • 你能解释一下为什么会这样吗?
  • 你根本不需要 { },因为你可以将 if 语句反转为
  • 他的目的是检查副本。如果没有大括号,则只检查第一行的值。以及“isDuplicate = true;”这一步将执行,无论是否有重复。
【解决方案4】:

在您的程序中,您检查单元格是否与新值匹配,然后将true 分配给isDuplicate。然后将 Dupe Test 值分配给 lblNotRawConsignmentNumber

if (lblConsignmentNumber.Text != gvReceivedBoxes.Rows[i].Cells[3].Text)
{
  isDuplicate = true;
  lblNotRawConsignmentNumber.Text = "Dupe Teset";
  break;
}

尝试以下方法:

if (lblConsignmentNumber.Text == gvReceivedBoxes.Rows[i].Cells[3].Text)
{
  isDuplicate = true;
  lblNotRawConsignmentNumber.Text = "Dupe Teset";
  break;
}

【讨论】:

  • 这个方法我试过了,还是不行……
  • 再次,我尝试过这种方式,当我更改为“==”而不是“!=”时,它只允许我发布任何内容
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-04
  • 1970-01-01
  • 1970-01-01
  • 2014-03-04
  • 2012-03-09
  • 2016-06-04
相关资源
最近更新 更多