在c# RadioButton中,字符串未被识别为有效的布尔值
本文关键字:识别 有效 布尔值 RadioButton 字符串 | 更新日期: 2023-09-27 18:14:46
我想从一个表单发送值到另一个表单,这意味着当我点击一个按钮,然后我想通过id列发送学生值到另一个表单。但是,当我想发送RadioButton值时,我得到了一个关于字符串的错误。
请注意,我不将RadioButton值保存为字符串,即男性或女性到数据库中。
下面是代码本身。
if (this.isupdate)
{
DataTable dtStudentInfo = GetAllStudentInfoById(this.StudentId);
DataRow row = dtStudentInfo.Rows[0];
tbID.Text = row["std_id"].ToString();
tbName.Text = row["std_name"].ToString();
tbFatherName.Text = row["std_f_name"].ToString();
tbAddress.Text = row["std_address"].ToString();
tbBatchNo.Text = row["std_batch"].ToString();
tbBatchYear.Text = row["std_batch_year"].ToString();
tbCNIC.Text = row["std_cnic"].ToString();
tbMobNumber.Text = row["std_mob"].ToString();
rbMale.Checked = (row["std_gender"] is DBNull) ? false : Convert.ToBoolean(row["std_gender"] = 1) ? true : false);
}
一个小小的打字错误会造成很大的影响。
Convert.ToBoolean(row["std_gender"] = 1)
应该是(这里不需要转换):
Convert.ToBoolean(row["std_gender"] == 1)
输入错误导致row["std_gender"]
被设置为1,导致转换失败
Try
Convert.ToBoolean(row["std_gender"].ToString() == "1")
解决了…代码是对的……只是一个小错误,返回类型....
private object GetGender()
{
if (rbMale.Checked)
{
return (int)Gender.Male;
}
else if (rbFemale.Checked)
{
return (int)Gender.Female;
}
else
{
return (int)Gender.NoSelection;
}
}
只是将返回类型从object更改为int,并将性别的数据类型从varchar更改为int…下面是代码
private int GetGender()
{
if (rbMale.Checked)
{
return (int)Gender.Male;
}
else if (rbFemale.Checked)
{
return (int)Gender.Female;
}
else
{
return (int)Gender.NoSelection;
}
}