繁体   English   中英

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

[英]String was not recognized as a valid boolean in C# RadioButton

我想将值从一种形式发送到另一种形式,这意味着当我单击按钮时,我想通过id列将学生值发送到另一种形式。 但是,当我要发送RadioButton值时,出现了关于无法识别字符串的错误。

请注意,我不将RadioButton值另存为字符串,即Male或Female到数据库中。

这是代码本身。

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,这使转换失败。

尝试

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM