.NET et MySql paramétrée, AddWithValue les variables NULLES, comment éviter de vérifier les valeurs null

Disons que j'ai une base de données MySql procédure stockée qui insère un enregistrement avec certains nullable CHAR champs.

Dans VB.NET si je ne vérifie pas pour Rien (ou Null dans d'autres langues), j'obtiens une exception à partir du pilote de base de données, j'ai donc écrire:

command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("_name", if(name Is Nothing, "", name)).Direction = ParameterDirection.Input;

Et c'est la première chose que je n'aime pas; je voudrais passer Rien et le conducteur sait qu'il doit mettre en valeur NULL dans la base de données. Mais alors, dans la procédure stockée, j'ai vérifier sur le terrain si il est vide:

INSERT INTO mytable
(
    name,
-- other 200 char fields
)
VALUES
(
    NULLIF(_name, ''),
-- other 200 char fields
)

Laid euh? - Je vérifier le néant/vide deux fois.
Est-il le meilleur, le plus direct, chemin?

Pire encore, pour les types de référence (j'.e: Entiers) la case pour que le néant n'a pas de sens, car un type primitif ne peut pas être rien (oui, je pourrais être un Entier non significative de la valeur, disons -1 pour une identification positive, mais...).

OriginalL'auteur vulkanino | 2010-09-15