首页 > 解决方案 > 将两个输入分配给 SQL 表的单个列

问题描述

我正在尝试使用小型表单收集用户的数据并将其插入到 Student 表 (db) 的列中。我能够插入除用户性别之外的所有信息,为此我使用了两个单选按钮(radioButton_maleradioButton_female)。

在此处输入图像描述

这是我使用的 C# 代码: 仪表板形式:

private void Btn_Register_Click(object sender, EventArgs e)
{
    Obj.StudentName = textBox_studentName.Text;
    Obj.Age = int.Parse(textBox_age.Text);
    Obj.Gender_m = radioButton_male.Text;
    Obj.Gender_f = radioButton_female.Text;
    Obj.Contact = int.Parse(textBox_contact.Text);

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

学生班

public string StudentName { get; set; }
public int Age { get; set; }
public string Gender_m { get; set; }
public string Gender_f { get; set; }
public int Contact { get; set; }

_

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);
                cmd.Parameters.AddWithValue("@Gender", Gender_m);
                cmd.Parameters.AddWithValue("@Gender", Gender_f);
                cmd.Parameters.AddWithValue("@ContactNo", Contact);
                cmd.Parameters.AddWithValue("@Age", Age);
                conn.Open();
                int row = cmd.ExecuteNonQuery();

                if (row > 0)
                {
                    success = true;
                }
                else
                {
                    success = false;
                }


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

我知道我不能简单地将两个条目分配给单个列,但我无法使用 If Else 或任何其他方式正确设置它。希望您能提供帮助。谢谢你。

标签: c#sqlsql-serverdatabasedesign-view

解决方案


您的设计应该只保留一个记录学生性别的字段:

public string StudentName { get; set; }
public int Age { get; set; }
public string Gender { get; set; }
public int Contact { get; set; }

当您从 UI 收集表单数据时,您应该根据选择的单选按钮分配'M'或分配。'F'


推荐阅读