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();
}
两个问题:
- 您有
ToString
,而不是ToString()
。ToString
是指函数本身;需要括号来调用该方法 - 您根本不应该调用
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