c# if else statement

本文关键字:statement else if | 更新日期: 2023-09-27 17:59:57

我在这里遇到了一个问题,因为我的编码不起作用(错误),我不知道如何纠正它。你们能检查一下这句话是对是错吗?我的条件是1) 如果textbox productname为null或为空,并且未选择dropdownlist1,则文本将为null。2) 如果填写了文本框productname(字符串),则将填写文本3) 如果textbox productname为null或为空,并且选择了dropdownlist1,则text将选择值。请参阅粗体文本。谢谢!!

if (String.IsNullOrEmpty(txtSearchProductname.Text) == true)
    {
        if (**DropDownList1.SelectedValue.ToString == null**)
        {
            txtSearchProductname.Text = " ";
        }
        else 
        {
            SqlProductmaster.InsertParameters["ProductName"].DefaultValue = DropDownList1.SelectedValue.ToString();
        }                
     }
    else 
    {
        SqlProductmaster.InsertParameters["ProductName"].DefaultValue = txtProductName.Text.ToString();
    }

c# if else statement

两个问题:

  1. 您有ToString,而不是ToString()ToString是指函数本身;需要括号来调用该方法
  2. 您根本不应该调用ToString(),因为该值可能为null;这将生成CCD_ 5。只需检查DropDownList1.SelectedValue == null

这应该是你所需要的:

if (String.IsNullOrEmpty(txtSearchProductname.Text))
{
    if (DropDownList1.SelectedValue == null)
    {
        txtSearchProductname.Text = " ";
    }
    else 
    {
        SqlProductmaster.InsertParameters["ProductName"].DefaultValue = DropDownList1.SelectedValue;
    }                
 }
else 
{
    SqlProductmaster.InsertParameters["ProductName"].DefaultValue = txtProductName.Text;
}

.ToString是一个方法。您想要检查调用该方法的结果,因此需要调用它(因此,.ToString())。

您不需要那么多ToString。如果DropDownList1.SelectedValue为null,则DropDownList1.SelectedValue.ToString()将抛出异常。

if (string.IsNullOrEmpty(txtSearchProductname.Text) == true)
{
    if (DropDownList1.SelectedValue == null)
    {
        txtSearchProductname.Text = " ";
    }
    else 
    {
        SqlProductmaster.InsertParameters["ProductName"].DefaultValue = DropDownList1.SelectedValue;
    }                
    }
else 
{
    SqlProductmaster.InsertParameters["ProductName"].DefaultValue = txtProductName.Text;
}        

我看到的第一件事是,您有一个没有括号的ToString方法。它应该是这样的:

if (DropDownList1.SelectedValue.ToString() == null)

正如其他人所指出的,第二个问题是将项转换为字符串后与null的比较。将null转换为字符串会导致错误(null的字符串表示形式不存在)。相反,正如他们所指出的,您应该完全删除ToString(),并将SelectedValue与null进行比较,如下所示:

if (DropDownList1.SelectedValue == null)

您正在使用DropDownList的SelectedValue和不需要的ToString()。请参见下文。

if (String.IsNullOrEmpty(txtSearchProductname.Text) == true) 
{ 
    if (string.IsNullOrEmpty(DropDownList1.SelectedValue)) 
    { 
        txtSearchProductname.Text = " "; 
    } 
    else 
    { 
        SqlProductmaster.InsertParameters["ProductName"].DefaultValue = DropDownList1.SelectedValue;        
    }
} 
else 
{ 
    SqlProductmaster.InsertParameters["ProductName"].DefaultValue = txtProductName.Text.ToString(); 
}

HTH