You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#开发中如何将两个单选按钮值赋值到SQL表的单个Gender列

解决方案

你核心的问题是将两个单选按钮的文本都存为了类属性,同时给数据库的@Gender参数重复赋值导致的,按以下步骤修改即可:

步骤1:修改Student类属性

删除冗余的两个性别属性,替换为单一的Gender属性:

public string StudentName { get; set; }
public int Age { get; set; }
// 替换原来的Gender_m、Gender_f为单一Gender属性
public string Gender { get; set; }
public int Contact { get; set; }

步骤2:修改Dashboard窗体的注册按钮点击逻辑

判断当前选中的单选按钮,将对应文本赋值给Gender属性:

private void Btn_Register_Click(object sender, EventArgs e)
{
    Obj.StudentName = textBox_studentName.Text;
    Obj.Age = int.Parse(textBox_age.Text);
    // 判断选中的单选按钮
    if (radioButton_male.Checked)
    {
        Obj.Gender = radioButton_male.Text;
    }
    else if (radioButton_female.Checked)
    {
        Obj.Gender = radioButton_female.Text;
    }
    // 可选:增加未选性别的拦截提示
    else
    {
        MessageBox.Show("请选择性别");
        return;
    }
    Obj.Contact = int.Parse(textBox_contact.Text);

    bool success = Obj.studentAdd(Obj);
    if (success)
    {
        MessageBox.Show("Saved");
    }
}

步骤3:修改studentAdd方法的参数赋值逻辑

删除重复的@Gender参数赋值,仅保留一个:

public bool studentAdd(Student obj)
{
    SqlConnection conn = new SqlConnection(myconnstring);
    bool success = false;
    
    try
    {
        string sql = "INSERT INTO Students(FullName, Gender, ContactNo, Age) VALUES (@FullName, @Gender, @ContactNo, @Age)";
        SqlCommand cmd = new SqlCommand(sql, conn);
        cmd.Parameters.AddWithValue("@FullName", StudentName);
        // 删除原来的两次@Gender赋值,替换为以下一行
        cmd.Parameters.AddWithValue("@Gender", Gender);
        cmd.Parameters.AddWithValue("@ContactNo", Contact);
        cmd.Parameters.AddWithValue("@Age", Age);
        conn.Open();
        int row = cmd.ExecuteNonQuery();

        success = row > 0;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    } 
    finally
    {
        conn.Close();
    }
    
    return success;
}

可选优化建议

  • 可以把int.Parse替换为int.TryParse避免用户输入非数字内容时程序报错
  • 数据库连接建议用using语法自动释放资源,不需要手动写finally关闭连接

内容的提问来源于stack exchange,提问作者mante

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 10:39:03