Comment insérer la valeur NULL dans la base de données si le champ du formulaire est vide
J'ai un formulaire et procédure stockée qui insère les données de la forme. Il fonctionne bien sauf que si un champ n'est pas rempli, il n'a pas d'insérer un NULL
en SQL il insère ""
.
J'ai essayé de plusieurs façons différentes, mais aucun ne semble s'insérer NULL
, celui-ci encore insère ""
, quelqu'un peut me pointer dans la bonne direction?
Ici est la partie du code, si vous avez besoin de plus laissez-moi savoir.
Dim rdr As SqlDataReader
Dim cmdInsert As SqlCommand = New SqlCommand()
cmdInsert.CommandText = "spPersonalDetailsInsert"
cmdInsert.CommandType = CommandType.StoredProcedure
cmdInsert.Connection = connSQL
Dim firstname, lastname, address, address1, town, county, postcode As SqlParameter
'convert to null if ""
Dim frmFirstName As String
If pd_first_name.Text = "" Then
frmFirstName = Convert.DBNull
Else
frmFirstName = pd_first_name.Text
End If
firstname = New SqlParameter()
firstname.ParameterName = "@firstname"
firstname.SqlDbType = SqlDbType.NVarChar
firstname.Size = 50
firstname.Direction = ParameterDirection.Input
firstname.Value = frmFirstName
MODIFIER
J'ai testé le code suivant:
If pd_first_name.Text = "" Then
frmFirstName = DBNull.Value
Else
frmFirstName = pd_first_name.Text
End If
Mais ça ne fonctionne toujours pas insérer NULL
alors j'ai testé ceci:
If pd_first_name.Text = "" Then
Response.Write("NULL")
address1.Value = DBNull.Value
Else
Response.Write("NOT NULL")
address1.Value = pd_address1.Text
End If
Donc, si je n'entrez rien dans address1
champ qu'il doit écrire NULL
à l'écran, mais il écrit toujours NOT NULL
. Ce n'est qu'une forme vide, le champ de l'égalité? en ASP classique, il a toujours été ""
.
OriginalL'auteur JBoom | 2011-01-18
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser DBNull.Valeur
Cela fonctionne en fait, de ma faute, je faisait référence à la mauvaise champ de formulaire édité mon code, merci Barry.
OriginalL'auteur codingbadger
pourquoi même si il est nul?
OriginalL'auteur YvesR
Dans mon cas, à l'aide de 'Rien' résout le problème. L'utilisation de cette
OriginalL'auteur Cary Bondoc
Je pense que vous problème est que
frmFirstName
est une chaîne et d'une chaîne de caractères ne peut pas représenter DBNull.Je pense que cela permettra de résoudre votre problème (j'ai juste commenté votre code):
OriginalL'auteur m.edmondson
Maintenant, Pas Besoin d'utiliser
Espérons que cela pourrait être Utile
OriginalL'auteur AmollJ.
Lors de la création de la procédure stockée faire ces colonnes null qui peut être null..
comme
et puis dans le code de ne pas ajouter ces paramètres qui sont nuls..
OriginalL'auteur Surya
OriginalL'auteur Mohamed Mo. Abosaleh