我想将值从一个表单发送到另一个表单,这意味着当我单击一个按钮然后我想通过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);
}
答案 0 :(得分:7)
一个小小的拼写错误会产生很大的不同。
Convert.ToBoolean(row["std_gender"] = 1)
本来应该是(转换是不必要的):
Convert.ToBoolean(row["std_gender"] == 1)
错误导致row["std_gender"]
设置为1,这导致转换失败。
答案 1 :(得分:0)
尝试
Convert.ToBoolean(row["std_gender"].ToString() == "1")
答案 2 :(得分:-1)
解决.. !!! 代码是正确的...返回类型只是一个错误....
private object GetGender()
{
if (rbMale.Checked)
{
return (int)Gender.Male;
}
else if (rbFemale.Checked)
{
return (int)Gender.Female;
}
else
{
return (int)Gender.NoSelection;
}
}
刚刚将对象的返回类型更改为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;
}
}