字符串未被识别为C#RadioButton中的有效布尔值

时间:2016-10-25 14:17:04

标签: c# winforms

我想将值从一个表单发送到另一个表单,这意味着当我单击一个按钮然后我想通过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);

}

3 个答案:

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