Gestion du Null en ASP.Net(VB) vers SQL
Bonjour à toutes et à tous.
Accrochez-vous, c'est un peu compliqué à expliquer... ;)
Depuis mes pages je voudrais passer des arguments pouvant avoir la valeur "Null" à des fonctions (compilées dans une dll) appelant elles-même des Procédures stockées.
exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| variable_retour = appel_fonction(var_1, var_2)
Function appel_fonction (byval v1 as long, byval v2 as string) as string
[...] (je vous passe les déclarations...)
ParamfcVariable = Cmd.Parameters.Add("@v1", SqlDbType.Int)
ParamfcVariable.Direction = ParameterDirection.Input
if isnothing(v1) Then
ParamfcVariable.Value = dbnull.value
else
ParamfcVariable.Value = v1
end if
ParamfcVariable = Cmd.Parameters.Add("@v2", SqlDbType.VarChar, 255)
ParamfcVariable.Direction = ParameterDirection.Input
if isnothing(v2) Then
ParamfcVariable.Value = dbnull.value
else
ParamfcVariable.Value = v2
end if
Dim dr As SqlDataReader = Cmd.ExecuteReader()
[...] |
Afin de pouvoir passer des valeurs "NULL" je set mes variables à "Nothing", et pour être sur qu'elles le soient réellement j'affecte la valeur dbnull.value aux paramètres si ceux -ci remplissent la condition isnothing...
Jusque là tout semble opérationnel si ce n'est que, autant le varchar prend bien la valeur "NULL" en s'exécutant dans la requête, le numerique, ici un INT, passe systématiquement à 0 et non pas à la valeur "NULL" et ce malgré l'affectation dbnull.value au paramètre...
Suis-je assez clair ?
Mon souci est que si je veux tester une valeur "NULL" en base pour l'argument numérique je ne remplis plus ma condition en lui passant 0...
une solution ?...
Merci par avance.