运算符'=='不能应用于'string'和'bool'类型的操作数

时间:2013-11-21 19:57:03

标签: c# asp.net email

我尝试在这样的asp.net中发送邮件

     if ( DropDownListcontrol!= null)
                  {

                      if (DropDownListcontrol.SelectedValue == true)
                      {

                          //get Current EMAIL_ID from the DataKey

                          string emailId = 
                      ((Label)Repeater2.Items[i].FindControl("Label2")).Text;
                          //write code to send mail
                          SendEmailUsingGmail(emailId);
                          dt.Clear();
                          dt.Dispose();
                      }
                      else if (DropDownListcontrol.SelectedValue == false)
                      {
                      }
                  }

但这里出现在这一行

DropDownListcontrol.SelectedValue == false

错误: 运算符'=='不能应用于'string'和'bool'

类型的操作数

我怎么解决这个问题?

5 个答案:

答案 0 :(得分:2)

DropDownListcontrol.SelectedValue

这会返回string。您不能将布尔运算符应用于它。 我现在不认为需要if声明。你想要做什么?

如果您的下拉列表中的值实际上是“true”和“false”,则只需使用文字字符串比较:

if(DropDownListcontrol.SelectedValue == "true")

答案 1 :(得分:2)

将其更改为:

DropDownListcontrol.SelectedValue == "true"

或者将您选择的值转换为bool。

答案 2 :(得分:1)

下拉列表是否包含表示true / false的字符串值(例如“True”,“False”)?然后你必须将它们转换为布尔值(参见:Boolean.TryParse),或者只是进行字符串比较(例如SelectedValue.Equals("True"))。

附注:如果你有bool isFubar,则永远不需要写if (isFubar == true)。您只需撰写if (isFubar)

即可

答案 3 :(得分:1)

DropDownList SelectedValue property is a string,因此您将无法将字符串与bool值进行比较 - 这是错误消息(可能不是很清楚)所说的。

您是否试图判断DropDownList中是否有选定的值,如果有,那么您是否要执行某些操作(如发送电子邮件)?

或者,DropDownList是否包含一些您想用来确定是否应该发送电子邮件的值?即“真”和“假”?

如果您试图判断DropDownList中是否存在选定值,则检查SelectedValue是否为空。但是,可能有always an item selected in the list

答案 4 :(得分:1)

您应该更详细地了解下拉列表中的值。

无论如何,我的建议:

如果下拉列表中的值为“true”和“false”,则必须使用:

if(DropDownListcontrol.SelectedValue == "true")
{

}

如果您只是检查用户是否在下拉列表中选择了某个值,那么您必须使用:

if(DropdownListControl.SelectedIndex == -1)
{

}