c#if else语句

时间:2011-06-23 03:54:41

标签: c# asp.net if-statement

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

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

5 个答案:

答案 0 :(得分:6)

两个问题:

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

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

答案 1 :(得分:1)

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

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

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

if (DropDownList1.SelectedValue == null)

答案 2 :(得分:1)

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

答案 3 :(得分:1)

您不需要那么多ToString。如果DropDownList1.SelectedValue为空,则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;
}        

答案 4 :(得分:1)

您正在使用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