【问题标题】:CheckBox is not changing to CheckedCheckBox 未更改为 Checked
【发布时间】:2015-07-22 21:49:56
【问题描述】:

我有一些逻辑应该读取数据库中的列应该是 1 还是 0,代表真或假。

我已经用调试器完成了它,并且 if 语句的计算结果为 true,所以这肯定意味着复选框应该被选中?

int QuestionID = Convert.ToInt32(ddQuestions.SelectedItem.Text);

using (SqlDataReader dr = SQLData.checkchkbx(QuestionID))
{
    if (dr.HasRows)
    {
        while (dr.Read())
        {
            string TRUEorFALSE = dr["TRUEorFALSE"].ToString();
            int trueorfalse = Convert.ToInt32(TRUEorFALSE);

            if (trueorfalse == 1)
            {
                chkbxAnswer1.Checked=true;
            }
        }
    }
}

我错过了什么吗?

【问题讨论】:

  • 您还有其他影响复选框的代码吗?
  • 不,我已经注释掉了。所以要解决这个问题,我会将它从while循环中删除并使用get set?干杯
  • 我不会说您需要删除循环,我只是说如果它确实评估为 True 那么它应该可以工作,并且用户,您的答案与op 的代码,其中他们声明 if 语句已经 确实 评估为 true
  • @Bigtingz92 - 这就是为什么,因为你还没有运行那行代码,你需要检查它之后那行代码
  • 您的数据库中TRUEorFALSE 的类型是什么?确保它是bit

标签: c# sql asp.net checkbox


【解决方案1】:

好的,我设法通过将if语句中的“1”改为“True”来解决,如下

 using (SqlDataReader dr = SQLData.checkchkbx(QuestionID))
            {
                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        string TRUEorFALSE = dr["TRUEorFALSE"].ToString();
                        if (TRUEorFALSE == "True")
                        {
                            chkbxAnswer1.Checked = true;
                        }
                    }
                }
            }

出于某种原因(我仍然不知道为什么),数据库中的 TRUEorFALSE 列尽管填充了 1 和 0,但返回“True”和“False”,这有点酷,但我不知道为什么...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-24
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 2021-07-15
    相关资源
    最近更新 更多