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

Accès aux données Discussion :

[C#/Sql Server] Comment passer un paramètre null à une procédure stockée ?


Sujet :

Accès aux données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Par défaut [C#/Sql Server] Comment passer un paramètre null à une procédure stockée ?
    Bonjour,

    Je bloque sur le problème suivant, j'aimerai passer un paramêtre null à ma procédure stockée seulemement ça ne fonctionne pas, voici le 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
     
    //SqlConnection con = new SqlConnection
    (System.Configuration.ConfigurationSettings.AppSettings
    ("Soccer.Properties.Settings.SoccerDatabaseConnectionString"));
     
    SqlConnection con = new SqlConnection("Data Source=*****;Initial
     Catalog=SoccerDatabase;Integrated Security=True");
     
    SqlCommand command = new SqlCommand("get_fixture", con);
    command.CommandType = CommandType.StoredProcedure;
     
    command.Parameters.Add("@CountryName", SqlDbType.VarChar, 30).Value
     = country.Trim();
    command.Parameters.Add("@LeagueName", SqlDbType.VarChar, 30).Value
     = league.Trim();
    command.Parameters.Add("@TeamName", SqlDbType.VarChar, 30).Value =
     "ZZZ";
    command.Parameters.Add("@NbPastSeason", SqlDbType.Int, 4).Value = 
    nbSeason;
    command.Parameters.Add("@FixtureStatus", SqlDbType.VarChar, 3).Value = 'P';

    La solution temporaire a été d'utiliser un valeur bidon 'ZZZ' pour le paramêtre @TeamName afin d'éviter le null, mais j'aimerai bien avoir un solution plus clean. Avez-vous une idée ?


    je vous remercie

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Tu as essayé DBValue.Null ?

  3. #3
    Nip
    Nip est déconnecté
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    963
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 963
    Par défaut
    Si la solution de Morpheus ne marche pas alors quelle est l'erreur retournee? Le champ de ta base accepte t'il les null?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Par défaut
    oui mon champ accepte bien les null.
    J'ai essayé votre solution voici l'erreur que j'obtenais :

    Error 2 Argument '3': cannot convert from 'System.DBNull' to 'string'
    j'ai donc ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.DBNull.value.tostring()
    mais maintenant ma proc ne renvoie plus rien.

    merci pour votre aide, je continue à chercher

  5. #5
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Puisque que c'est une string qui est attendue donc pourquoi ne pas simplement passer une chaîne vide

  6. #6
    Nip
    Nip est déconnecté
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    963
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 963
    Par défaut
    Et si tu utilises la syntaxe suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SqlParameter parameter = new SqlParameter();
    parameter.ParameterName = "@TeamName";
    parameter.Value = DBNull.value;
    command.Parameters.Add(parameter, SqlDbType.VarChar, 30)
    Ca te donne toujours la meme erreur?

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/08/2007, 11h02
  2. Réponses: 8
    Dernier message: 17/03/2006, 08h06
  3. [SQL server] Comment Fusionner des données dans une requête
    Par MoTUmBo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/07/2005, 15h24
  4. [SQL Server] Passage d'un paramètre dans une procédure
    Par navis84 dans le forum Bases de données
    Réponses: 3
    Dernier message: 14/01/2005, 13h19

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