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

C# Discussion :

vérifier l'existence d'un enregistrement


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 61
    Points : 28
    Points
    28
    Par défaut vérifier l'existence d'un enregistrement
    bonsoir,

    lors du remplissage d"une table comment je peux implémenter cette expression
    1 veréfier que une ville est déja enregistré
    2- Si Oui, on génère un message "l'enregistrement existe déjà".
    3- Si Non, on valide.
    merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    il suffit de faire un SELECT COUNT(*) FROM la_table WHERE <les critères qui vont bien>
    si ça renvoie 0 => OK
    sinon => il existe déjà

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 61
    Points : 28
    Points
    28
    Par défaut
    merci,
    je vois pas comment appliquer SELECT COUNT,
    MERCI

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    En utilisant des SqlCommand (si ta table est dans une base SQL Server).

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 61
    Points : 28
    Points
    28
    Par défaut
    pour la saisie de ma table j'ai utiliser une requete paramatrée
    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
     
             // Chaîne de connexion
                    string connectString = @"Data Source=xxxx\SQLEXPRESS;Initial Catalog=hafid;Integrated Security=True";
                    // Objet connection
                        SqlConnection connection = new SqlConnection(connectString);
                        // Ouverture
                        connection.Open();
     
                        SqlCommand command = new SqlCommand("INSERT INTO [Table_Project]([ID_project],[Project Category],[kick off date],[Location]) VALUES(@ID_project,@Project_Category, @kick_off_date,@Location)", connection);
     
                        // Paramètres
                        command.Parameters.Add(new SqlParameter("@ID_project", SqlDbType.NVarChar, 50));
                        command.Parameters.Add(new SqlParameter("@Project_Category", SqlDbType.NVarChar, 50));
                        command.Parameters.Add(new SqlParameter("@kick_off_date", SqlDbType.NVarChar, 50));
                        command.Parameters.Add(new SqlParameter("@Location", SqlDbType.NVarChar, 50));
     
                        command.Parameters["@ID_project"].Value = textBox_project_name.Text;
                        command.Parameters["@Project_Category"].Value = comboBox1.Text;
                        command.Parameters["@Location"].Value = comboBox2.Text;
                        command.Parameters["@kick_off_date"].Value = textBox_Date.Text;
                        command.ExecuteNonQuery();
    ce que je cherche c'est comment veux veréfier que une ID_project est déja enregistré
    2- Si Oui, on génère un message "l'enregistrement existe déjà".
    3- Si Non, on valide.
    merci

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    apparemment tu sais exécuter une requête, qu'est-ce qui te gêne pour faire un SELECT COUNT ?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 61
    Points : 28
    Points
    28
    Par défaut
    est ce que je dois remplacer ma requete INSERT INTO par SELECT COUNT ?

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    oui, et adapter les paramètres, et utiliser ExecuteScalar à la place de ExecuteNonQuery

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 14
    Points : 17
    Points
    17
    Par défaut
    vous pouvez nous donner un exemple de votre select count(*) ?
    pour tester l'existence d'un enregistrement !!

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 104
    Points
    104
    Par défaut
    Bonsoir,
    Un truc du genre devrait fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SqlCommand command = new SqlCommand("SELECT [ID_project] FROM [Table_Project] WHERE [ID_project] = @ID_project", connection);
     
    // Paramètres
    command.Parameters.Add(new SqlParameter("@ID_project", SqlDbType.NVarChar, 50));
    command.Parameters["@ID_project"].Value = textBox_project_name.Text;
     
    SqlDataReader reader = command.ExecuteReader();
     
    if (reader.HasRows)
    Console.Write("Enregistrement existant");
    else
    //Autre action
    Je ne sais pas ce qui est le moins gourmand entre un count() et un select tout court.

    Bonne soirée

  11. #11
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 14
    Points : 17
    Points
    17
    Par défaut
    Merci pour votre rèponse johnjohn33 , mais est ce que je peux avoir un exemple simple qui test l'existence double d'un enregistrement sans les paremetrs !!!!

  12. #12
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    On peut tester à priori si une ville n'existe pas. Mais, si l'appli est multiutilisateur, un autre utilisateur pourra avoir créée la ville entre le test et l'enregistrement. Donc, le test préalable ne dispense pas de gérer l'erreur d'ajout d'une ville existante, erreur liée aux contraintes de la base de donnée.

    En général, on n'effectue pas de test préalable et on affiche un message d'erreur en cas de violation de contrainte (ajout d'une clé dèjà existante).

Discussions similaires

  1. [11gR1] Vérifier l'existence d'un enregistrement
    Par akkyshan dans le forum SQL
    Réponses: 9
    Dernier message: 17/02/2014, 17h46
  2. Vérifier l'existance d'un enregistrement dans un table
    Par toutoune95800 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 10/06/2013, 12h06
  3. Vérifier l'existence de mes enregistrements par un SELECT
    Par boutmos dans le forum Langage SQL
    Réponses: 6
    Dernier message: 17/09/2010, 23h17
  4. [MySQL] vérifier l'existance d'un enregistrement avant insertion
    Par patheoson dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 22/01/2010, 12h47
  5. [AC-2003] Vérifier l'existence d'un enregistrement : DLookUp ou Select
    Par buzz73 dans le forum IHM
    Réponses: 2
    Dernier message: 22/07/2009, 13h31

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