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