IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[2.0] Insérer NULL en base de données


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut [2.0] Insérer NULL en base de données
    Salut,

    Après avoir lu le cour sur les bonnes pratiques pour les accès aux données j'ai décidé d'utiliser les requêtes paramétrées plutôt que des concaténations de chaînes. Seulement, je ne vois pas comment insérer une valeur NULL en base et, curieusement, ce n'est pas dans la FAQ. J'ai trouvé un message qui paraît clair. Mais je ne peux pas utiliser un type en tant qu'expression. Nothing me retourne une NullReferenceException et je ne veux pas mettre 0 ou "" par défaut comme je le fais aujourd'hui.
    Pouvez-vous m'indiquer la marche à suivre?
    Voici un concentré du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Private Sub executerSql2( _
    	 ByVal codeStatut As Integer, _
    	 Optional ByVal idDetail As Integer = 0, _
    	 Optional ByVal exception As String = "", _
    )
    		Dim oConn As SqlConnection = New SqlConnection("une chaîne de connexion quelconque")
    		Dim oCommand As SqlCommand = oConn.CreateCommand
    		Dim _idDetail As SqlParameter = oCommand.CreateParameter
    		Dim _codeStatut As SqlParameter = oCommand.CreateParameter
    		Dim _exception As SqlParameter = oCommand.CreateParameter
     
    		oCommand.CommandType = CommandType.Text
    		oCommand.CommandText = "insert into MA_TABLE (ID_DETAIL, CODE_STATUT, EXCEPTION) " & _
    		   "values (@idDetail, @codeStatut, @exception)"
    		_idDetail.ParameterName = "@idDetail"
    		_idDetail.DbType = DbType.Int32
    		_idDetail.Direction = ParameterDirection.Input
    		_idDetail.IsNullable = True
    		_codeStatut.ParameterName = "@codeStatut"
    		_codeStatut.DbType = DbType.Int32
    		_codeStatut.Direction = ParameterDirection.Input
    		_codeStatut.IsNullable = False
    		_exception.ParameterName = "@exception"
    		_exception.DbType = DbType.String
    		_exception.Direction = ParameterDirection.Input
    		_exception.IsNullable = True
     
    		oCommand.Parameters.Add(_idDetail)
    		oCommand.Parameters.Add(_codeStatut)
    		oCommand.Parameters.Add(_exception)
     
    		_codeStatut.Value = codeStatut
    		_idDetail.Value = IIf(idDetail = 0, 0, idDetail)
    		_exception.Value = IIf(exception = "", "Null", exception.Replace("'", "''"))
     
    		oConn.Open()
    		oCommand.ExecuteNonQuery()
    		oConn.Close()
     
    		oCommand.Dispose()
    		oConn.Dispose()
    End Sub
    Le problème intervient donc au niveau des Iif. Ce que j'ai mis ne me convient pas du tout. Une idée?
    D'ailleurs je suis aussi ouvert à tout autre commentaire, comme les valeurs par défaut des arguments de la méthode.

    Merci par avance.

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2003
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2003
    Messages : 201
    Par défaut
    wow bonne question, je suis ta discution avec intérêt...si jamais j'ai besoin de ca, et que je trouve, je te fais signe

  3. #3
    Membre expérimenté
    Avatar de SoBaKa
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Par défaut
    un petit :p

  4. #4
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Je suis dépité, j'avais essayé DBNull.Value, mais j'obtenais une erreur. Erreur qui devait être ailleurs à ce moment là.

    Merci SoBaKa, c'était une réponse claire, nette et précise. Exactement ce qu'il me fallait dans le brouillard qu'est mon cerveau actuellement...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    _idDetail.Value = IIf(idDetail = 0, DBNull.Value, idDetail)
    _exception.Value = IIf(exception = "", DBNull.Value, exception.Replace("'", "''"))

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OpenOffice][Base de données] Récupérer les données d'un fichier .txt et les insérer dans une base de données
    Par frack dans le forum OpenOffice & LibreOffice
    Réponses: 9
    Dernier message: 05/08/2009, 10h52
  2. Réponses: 1
    Dernier message: 15/04/2009, 18h28
  3. [CKEditor] Insérer dans ma base, les données saisies à partir de FCKeditor
    Par remo dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 16/05/2007, 10h44
  4. insérer image dans base de données
    Par eriz dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 16/04/2007, 12h03
  5. Insérer Enregistrement dans Base de données
    Par TurricanII dans le forum JBuilder
    Réponses: 3
    Dernier message: 30/05/2006, 12h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo