C # если еще заявление - PullRequest
1 голос
/ 23 июня 2011

У меня проблема здесь, потому что мое кодирование не работает (ошибка), и я не знаю, как это исправить. Ребята, ребята, вы можете проверить, правильно ли это утверждение или нет?Мои условия: 1) если текстовое поле productname пустое или пустое, а dropdownlist1 не выбран, текст будет нулевым.2) если текстовое поле productname заполнено (строка), то текст будет заполнен 3) если текстовое поле productname пустое или пустое и выбрано dropdownlist1, текст выберет значение.См. Жирный текст. СПАСИБО !!

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 ]

6 голосов
/ 23 июня 2011

Два вопроса:

  1. У вас есть ToString, а не ToString().ToString относится к самой функции;вам нужны круглые скобки для вызова метода
  2. Вы не должны вообще вызывать ToString(), так как значение может быть нулевым;это сгенерирует 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 голос
/ 23 июня 2011

Вы используете SelectedValue из DropDownList с 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

1 голос
/ 23 июня 2011

.ToString - это метод. Вы хотите проверить результат вызова этого метода, поэтому вам нужно вызвать его (следовательно, .ToString()).

1 голос
/ 23 июня 2011

Вам не нужно столько 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;
}        
1 голос
/ 23 июня 2011

Первое, что я вижу, это то, что у вас есть метод ToString без скобок. Это должно выглядеть так:

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

Как уже отмечали другие, вторая проблема - это сравнение с нулем после преобразования элемента в строку. Преобразование нулевого значения в строку приведет к ошибке (строковое представление нулевого значения не существует). Вместо этого, как они указали, вы должны полностью удалить ToString () и сравнить SelectedValue со значением null следующим образом:

if (DropDownList1.SelectedValue == null)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...