2010-02-18 3 views
0

J'insère la valeur des contrôles dynamiques dans le db comme ça;Comment éviter les plantages lorsque le paramètre est nul

Dim ae1 As DropDownList = FindControl("AreasExpertise1") 
     If (ae1 IsNot Nothing) Then 
      x.Parameters.AddWithValue("@areasexpertise1", ae1.SelectedValue) 
     End If 

puis dans ma requête j'ai des paramètres comme si;

INSERT INTO [foo] ([etc], [etc], [etc], [areasexpertise1], [areasexpertise2]) 
VALUES (@etc, @etc, @etc, @areasexpertise1, @areasexpertise2) 

Lorsque l'utilisateur remplit le formulaire, ils ne voient que areasexpertise1 et doivent appuyer sur un bouton pour insérer dynamiquement un autre domaine d'expertise ...

Si seulement ils ont 1 domaine d'expertise, la requête se bloque et dit 'doit déclarer variable @ areasexpertise2.

Pourriez-vous me dire comment insérer des valeurs nulles lorsque les paramètres sont vides ou les ignorer?

Merci beaucoup

Répondre

2

Essayez de passer à DBNull.Value, comme ceci:

If (ae1 IsNot Nothing) Then 
    x.Parameters.AddWithValue("@areasexpertise1", ae1.SelectedValue) 
Else 
    x.Parameters.AddWithValue("@areasexpertise1", DBNull.Value) 
End If 
+0

Merci Ada Je vais essayer maintenant – Phil

Questions connexes