在C#中只选择一个单选按钮

时间:2014-10-15 18:27:27

标签: c#

我是Windows窗体应用程序的初学者。 我正在保持学生记录。 问题是,当我检查男性或女性按钮时,在sql数据库中,女性和男性都显示在性别列中,而不仅仅是一个。 请帮我。 这是我的代码

private void button1_Click(object sender, EventArgs e)
{
    coachingdbDataContext coach = new coachingdbDataContext();
    std_table std = new std_table()
    {
        Name= nametxt.Text,
        Father_Name= fnametxt.Text,
        Class= classtxt.Text,
        Roll_Number= rolltxt.Text,
        Address=addresstxt.Text,
        Contact_Number=numtxt.Text,
        Date_Of_Birth=daybox.Text +" "+ monthbox.Text +" "+ yearbox.Text,
        Gender= malebutton.Text + femalebutton.Text,
    };

    coach.std_tables.InsertOnSubmit(std);  
    coach.SubmitChanges();
    MessageBox.Show("Sucessfully Submitted");                       
}   

5 个答案:

答案 0 :(得分:5)

您必须检查Checked单选按钮:

Gender = malebutton.Checked == true ? malebutton.Text : femalebutton.Text;

答案 1 :(得分:2)

这看起来很可能是罪魁祸首:

Gender = malebutton.Text + femalebutton.Text

无论选择哪个按钮,两个按钮都有文本。所以两者都会插入。

您可能想要检查选择了哪一个。 malebuttonfemalebutton有哪些类型?例如,他们有Checked财产吗?这样的事情可能会起作用:

Gender = malebutton.Checked ? malebutton.Text :
         (femalebutton.Checked ? femalebutton.Text :
         "unspecified");

如果选中了男性按钮,我们就是那个文字。否则,如果选中女性按钮,则使用该文本。否则,请使用默认值。

答案 2 :(得分:1)

如果你从两个文本中添加文本,那么你当然可以在我们的输出中得到它们。

Gender= malebutton.Text + femalebutton.Text
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

使用此:

    std_table std = new std_table()
    {
        Name= nametxt.Text,
        Father_Name= fnametxt.Text,
        Class= classtxt.Text,
        Roll_Number= rolltxt.Text,
        Address=addresstxt.Text,
        Contact_Number=numtxt.Text,
        Date_Of_Birth=daybox.Text +" "+ monthbox.Text +" "+ yearbox.Text,
        Gender=  malebutton.Checked ? malebutton.Text : femalebutton.Text;
    };

您可以阅读?运算符here

答案 3 :(得分:0)

这是罪魁祸首:

Gender= malebutton.Text + femalebutton.Text,

请改为:

std_table std = new std_table()
{
    Name= nametxt.Text,
    Father_Name= fnametxt.Text,
    Class= classtxt.Text,
    Roll_Number= rolltxt.Text,
    Address=addresstxt.Text,
    Contact_Number=numtxt.Text,
    Date_Of_Birth=daybox.Text +" "+ monthbox.Text +" "+ yearbox.Text
};

if ( malebutton.Checked ) { 
    std.Gender = malebutton.Text;
}

if (femalebutton.Checked ) { 
    std.Gender = femalebutton.Text;
}

答案 4 :(得分:0)

你可以替换

Gender= malebutton.Text + femalebutton.Text 

通过

if(malebutton.checked == true ) 
{
Gender= malebutton.Text;
}
else
{
Gender= femalebutton.Text;
}

希望这能解决您的问题