if,else if语句不能正常工作

时间:2016-12-08 18:21:50

标签: c# sql asp.net

    protected void submitBtn_Click(object sender, EventArgs e)
    {
                SqlConnection connect = new SqlConnection("Data Source=THEBEAST;Initial Catalog=newregDB;Integrated Security=True;Pooling=False");
        {
            if (parentRadBtn.Checked)
            {                  
                SqlCommand pa = new SqlCommand("INSERT INTO parent(parentID, firstname, surname, postcode, telephone, email, password) VALUES (@parentID, @firstname, @surname, @postcode, @telephone, @email, @password)", connect);
                pa.Parameters.AddWithValue("@parentID", userBox.Text);
                pa.Parameters.AddWithValue("@firstname", firstNameBox.Text);
                pa.Parameters.AddWithValue("@surname", surnameBox.Text);
                pa.Parameters.AddWithValue("@postcode", postcodeBox.Text);
                pa.Parameters.AddWithValue("@telephone", teleBox.Text);
                pa.Parameters.AddWithValue("@email", emailBox.Text);
                pa.Parameters.AddWithValue("@password", passwordBox.Text);

                connect.Open();
                pa.ExecuteNonQuery();
                connect.Close();

                if (IsPostBack)
                {
                    userBox.Text = "";
                    firstNameBox.Text = "";
                    surnameBox.Text = "";
                    postcodeBox.Text = "";
                    teleBox.Text = "";
                    emailBox.Text = "";
                    passwordBox.Text = "";
                }
                else if (childRadBtn.Checked)
                {                     
                    SqlCommand ca = new SqlCommand("INSERT INTO children(childID, firstname, dob, gender, password) VALUES (@childID, @firstname, @dob, @gender, @password)", connect);
                    ca.Parameters.AddWithValue("@childID", userBox.Text);
                    ca.Parameters.AddWithValue("@firstname", firstNameBox.Text);
                    ca.Parameters.AddWithValue("@dob", dayDobList.Text + monthDobList.Text + yearDobList.Text);
                    ca.Parameters.AddWithValue("@gender", genderList.Text);                       
                    ca.Parameters.AddWithValue("@password", passwordBox.Text);

                    connect.Open();
                    ca.ExecuteNonQuery();
                    connect.Close();

                    if (IsPostBack)
                    {
                        userBox.Text = "";
                        firstNameBox.Text = "";
                        dayDobList.Text = "";
                        monthDobList.Text = "";
                        yearDobList.Text = "";
                        genderList.Text = "";
                        passwordBox.Text = "";
                    }
                }
            }
        }
    }
}

大家好,

我已经查看了其他问题,但没有一个问题与我的确切问题相符或不在c#中。我正在使用Visual Studio在C#中创建一个asp.net Web应用程序。我有一个页面,其中包含填写父母或子女的表格(使用单选按钮完成)。当我选择父单选按钮并使用提交按钮将信息发送到我的数据库中的父表时,它工作正常。尝试对子单选按钮执行相同操作时,我的数据库中的子表中不存储任何信息。

我评论了if'(parentRadBtn.Checked)'声明并制作了' else if(childRadBtn.Checked)'一个独立的if语句,它开始正常工作(将信息存储在子表中)。这让我相信应用程序无法到达其他if(childRadBtn.Checked)'声明和经过大量的混乱之后,我无法让它发挥作用。通过查看上面的代码,任何人都可以告诉我我的if语句出错了吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

如果子按钮的块在父按钮的if块内,则看起来像你的其他。

if (parentRadBtn.Checked)
    {                  
        ...
        if (IsPostBack)
        {
        ...
        }
        else if (childRadBtn.Checked)
        {  
            ...                   
            if (IsPostBack)
            {
            ...
            }
        }
    }

如果parentRadBtn.Checked为false,您将永远不会到达else if(childRadBtn.Checked)阻止。

你想要的是这个:

if (parentRadBtn.Checked)
    {                  
        ...
        if (IsPostBack)
        {
        ...
        }
    }
    else if (childRadBtn.Checked)
    {  
        ...                   
        if (IsPostBack)
        {
            ...
        }
    }
}