我在这里遇到问题,因为我的编码不起作用(错误),我不知道如何纠正它。你们可以检查一下这句话是对还是错?我的条件是 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();
}
答案 0 :(得分:6)
两个问题:
ToString
,而不是ToString()
。 ToString
指的是函数本身;你需要括号来调用方法ToString()
,因为该值可能为null;这将生成NullReferenceException
。只需检查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;
}
答案 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