【问题标题】:Display SQL information on C# RadioButtons在 C# RadioButtons 上显示 SQL 信息
【发布时间】:2015-03-02 08:50:04
【问题描述】:

我的 C# 程序已连接到我的 SQL CE 数据库。我使用 SQLCEDATAREADER 来填充程序中的一些文本框。我的数据库中有一个“性别”列和一个带有男性和女性的单选按钮。如果我数据库中的某个条目在性别列中有“M”,我怎样才能使男性单选按钮显示为按下?

我试过了

if(dr["Gender"].ToString = "M")
{
    rbMale = true
}

这显然没有用。

【问题讨论】:

  • 你说的没有用是什么意思?您收到任何异常或错误消息? = 是一个赋值运算符,如果你想比较你的字符串,你需要使用 == 代替。由于ToString 是一个方法,因此您需要将其用作ToString()。而rbMale = true 需要; 在行尾。
  • 正确的语法应该是if(dr["Gender"].ToString() == "M") { rbMale = true; },但我们仍然需要更多关于您的问题的信息。
  • 它说“不能将类型'bool'隐式转换为'System.Windows.Forms.RadioButton”
  • 貌似rbMaleRadioButton,出现这个错误太正常了。看它是Checked 属性。如果您的条件返回true,您可以获取和设置此属性。

标签: c# radio-button sql-server-ce sqlcedatareader


【解决方案1】:
if(dr["Gender"].ToString() = "M")
    rbMale.Checked = true
else
    rbFemale.Checked = true

【讨论】:

  • 如果dr["Gender"] 为空怎么办? ;)
  • if (!string.isNullOrEmpty(dr["Gender"].ToString())) :o
  • if (Convert.ToString(dr["Gender"]) == "M")
【解决方案2】:

也许折叠成一行 -

rbMale.Checked = (Convert.ToString(dr["Gender"])=="M");

【讨论】:

  • 这个答案肯定更好。 : 一行布尔做作,不能抛出 NullReferenceException (dr["Gender"] null)。不过,外部() 不是必需的,它会降低代码的可读性。少即是多 ;) 有一点,如果提问者不想改变盒子的状态,如果 false :这个代码就可以了。
【解决方案3】:

如果rbMale 是您的单选按钮控件的名称,您可以通过将其Checked 属性设置为true 来将其标记为选中。

rbMale.Checked = true;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-20
    • 2012-12-21
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    相关资源
    最近更新 更多