2011-06-23 5 views
1

J'ai un problème ici parce que mon codage ne fonctionne pas (erreur) et je ne sais pas comment le corriger.Pouvez-vous les gars vérifier si cette déclaration a raison ou non? Mes conditions sont 1) si le nom de produit de la zone de texte est nul ou vide et que dropdownlist1 n'est pas sélectionné, le texte sera nul. 2) si textbox productname est renseigné (chaîne de caractères), le texte sera rempli 3) si si textbox productname est nul ou vide et que dropdownlist1 est sélectionné, le texte sélectionnera la valeur. Référez-vous au texte en gras.THANKS !!C# if else déclaration

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

Répondre

6

Deux questions:

  1. Vous avez ToString, pas ToString(). ToString fait référence à la fonction elle-même; vous avez besoin des parenthèses pour appeler la méthode
  2. Vous ne devriez pas appeler ToString(), car la valeur peut être nulle; cela générera un NullReferenceException. Vérifiez simplement si DropDownList1.SelectedValue == null.

Cela devrait être tout ce dont vous avez besoin:

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

Oui, vous l'avez réussi! Merci beaucoup! Ma tête est mieux maintenant .. –

1

La première chose que je vois est que vous avez une méthode ToString sans la parenthèse. Il devrait ressembler à ceci:

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

Comme d'autres l'ont souligné, la deuxième question est la comparaison à zéro après la conversion du produit en une chaîne. La conversion d'une valeur nulle en une chaîne entraînera une erreur (la représentation sous forme de chaîne d'une valeur nulle n'existe pas). Au lieu de cela, comme ils ont indiqué, vous devez supprimer les ToString() entièrement et de comparer les SelectedValue à null comme ceci:

if (DropDownList1.SelectedValue == null) 
1

.ToString est une méthode. Vous voulez vérifier le résultat de l'appel de cette méthode, vous devez donc l'appeler (par conséquent, .ToString()).

+0

Merci !! Manque mal, confusion sur la petite affaire .. –

1

Vous n'avez pas besoin de beaucoup de ToString. Si DropDownList1.SelectedValue est null, alors DropDownList1.SelectedValue.ToString() lèvera une exception.

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

Merci les gars. Vous êtes tous mon sauveur! –

1

Vous utilisez la SelectedValue du DropDownList avec un ToString() qui n'est pas nécessaire. Voir ci-dessous.

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

+0

Merci! Mais je ne peux voter qu'une seule réponse. Pour mauvais .. –