为什么在保存功能之前停止代码会保存数据

时间:2018-12-21 12:11:50

标签: c#

我的代码中有一个过程,在该过程中进行一些数据验证,然后调用SAVE函数。 SAVE函数将经过验证的数据写入数据库。如果在调用SAVE函数之前我只是一个代码中断,然后停止调试,则数据仍保存在数据库中(即SAVE函数仍在运行)。我进行了验证,因为如果我注释掉对SAVE函数的调用,并按上述相同的方式进行操作,则不会保存任何内容。 这是我的代码示例:

protected bool Savedata()
{
    string newpostingid = "";
    bool isSaved;
    int SaveError = 0;
    postingid = 0;
    string description = "";
    string RequiredSkills = "";
    string Certifications = "";
    string Travel = "";
    string duration = "";
    string WIIFY = "";
    string postingdate = "1/1/2000";
    DateTime? fromdate = validate_date(From_Date.Text);
    DateTime? todate = validate_date(To_Date.Text);
    DateTime? startdate = validate_date(Start_Date.Text);
    if (RequiredSkillsTextBox.Text != "") { RequiredSkills = RequiredSkillsTextBox.Text; }
    if (CertificationsTextBox.Text != "") { Certifications = CertificationsTextBox.Text; }
    if (WIIFYTextBox.Text != "") { WIIFY = WIIFYTextBox.Text; }
    newpostingid =
    jdh.UpdatePosting(
        Convert.ToInt32(OpportunityTypeDropDownList.SelectedValue),//PostingTypeID
        Server.HtmlEncode(OpportunityTitleTextBox.Text),//PostingTitle
        Convert.ToInt32(SalaryGradeDropDownList.SelectedValue),//SalaryGrade
        Convert.ToInt32(DisciplineDropDownList.SelectedValue),//LOBMFOID
        );
)

在上面的代码片段中,如果我在newpostingid = jdh.UpdatePosting之前放了一个中断,并在遇到中断时停止调试,则newpostingid = jdh.UpdatePosting仍然会被调用。正如我上面指出的,注释掉newpostingid部分,当我停止调试时,什么也不会保存。

1 个答案:

答案 0 :(得分:1)

要开始调试,通常使用绿色的“播放”图标或 F5

如果将断点放在代码中的任何位置,调试器将在此处停止执行。

它只会暂停执行而不会停止执行,这就是为什么正确的终结点是断点而不是断点。该行将标记为红色,并且该行的左侧会出现一个红点。

但是要停止调试,您将需要按住Stop Debugging按钮或 Shift + F5 将会执行相同的操作。

您可以使用Step Into F10 Step Over F11 逐步执行代码。如果在调试时按 F5 ,它将继续执行下一个断点或直到程序执行结束。

希望这有助于您的奋斗。