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

本文关键字:一个 单选按钮 选择 | 更新日期: 2023-09-27 18:26:35

我是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");                       
}   

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

您必须检查Checked单选按钮:

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

这看起来像是罪魁祸首:

Gender = malebutton.Text + femalebutton.Text

无论选择哪个按钮,这两个按钮都有文本。因此,两者都将被插入。

您可能想检查选择了哪一个。malebuttonfemalebutton有哪些类型?例如,它们是否具有Checked属性?这样的东西可能会起作用:

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

如果选中了公按钮,我们就会收到该文本。否则,如果选中了阴性按钮,则使用该文本。否则,请使用默认值。

如果您将两者的文本添加在一起,那么您当然会在我们的输出中获得两者。

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;
    };

您可以在此处阅读有关?运算符的信息。

这就是罪魁祸首:

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;
}

您可以更换

Gender= malebutton.Text + femalebutton.Text 

通过

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

希望这将解决您的问题