Si vous passez une valeur nulle au paramètre, vous obtiendrez cette erreur même après avoir ajouté les paramètres. Essayez donc de vérifier la valeur et si elle est nulle, utilisez DBNull.Value
Cela fonctionnera
cmd.Parameters.Add("@Department", SqlDbType.VarChar)
If (TextBox2.Text = Nothing) Then
cmd.Parameters("@Department").Value = DBNull.Value
Else
cmd.Parameters("@Department").Value = TextBox2.Text
End If
Cela convertira les valeurs nulles de la couche d'objets en valeurs DBNull acceptables pour la base de données.