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 :

insertion ou mise à jour C#


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut insertion ou mise à jour C#
    Bonjour,
    j'ai une table sql dans la quelle je doit insérer des données ou mettre à jour si ces dernier existent.
    voici les noms des colonnes de ma table : NOM,PRENOM,DAT_NAISS,FONCTION,SALAIRE.
    le nom de la table est employee.
    les 3 champs : Nom, Prenom, DatNaiss représentent la clé primaire.

    L'insertion et la mise à jour ce fait de cette manière : Les données arrivent sous forme d'un fichier excel, je charge le fichier dans un Dataset, et puis à partir du dataSet à la Table Sql.

    Au moment de l’insertion si un employée existe il sera mis à jour sinon il sera insérer.

    mon problème ce 'est que je sais pas comment dire au programme à quel moment il doit faire une insertion ou une mise à jour.
    voici un morceau de code de base (incomplet):

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
        class employee_Operations
        {
     
     
            Connexion connexion = new Connexion();
            private SqlConnection connection = null;
     
            public employee_Operations()
            {
     
                // Conenction to the database
     
                //this.connection = connexion.open_onnection();
     
            }
     
     
     
            public void Enregistrer_donnees(DataSet monDataSet)
            {
     
                //try
                //{
                this.connection = connexion.open_onnection();
                string qry = @"insert into employee(NOM,PRENOM,DAT_NAISS,FONCTION,SALAIRE)
                                        values(@nom,@prenom,@datnaiss,@fonction,@salaire)";
                    SqlCommand mycommand = new SqlCommand(qry, this.connection);
                    SqlDataAdapter da = new SqlDataAdapter();
                    da.SelectCommand = new SqlCommand(qry, connection);
                    SqlParameter param1 = new SqlParameter("@nom",qlDbType.VarChar);
                    SqlParameter param2 = new SqlParameter("@prenom",DbType.VarChar);
                    SqlParameter param3 = new SqlParameter("@datSqlDbType.SmallDateTime);
                    SqlParameter param4 = new SqlParameter("@fonSqlDbType.VarChar);
                    SqlParameter param5 = new SqlParameter("@salSqlDbType.Int);
     
     
                    mycommand.Parameters.Add(param1);
                    mycommand.Parameters.Add(param2);
                    mycommand.Parameters.Add(param3);
                    mycommand.Parameters.Add(param4);
                    mycommand.Parameters.Add(param5);
     
     
                    foreach (DataRow dr in monDataSet.Tables[0].Rows)
                    {
                        param1.Value = dr[0];
                        param2.Value = dr[1];
                        param3.Value = dr[2];
                        param4.Value = dr[3];
                        param5.Value = dr[4];
                       
                        mycommand.ExecuteNonQuery();
                    }
                    this.connection.Close();
     
                }
                catch (Exception e)
                {
                   MessageBox.Show(e.Message);
                 }
            }
     
        }

    et voici la calass connexion :

    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
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data.SqlClient;
     
    namespace GESTTIME
    {
        class Connexion
        {
            public string connexion = "Data Source=MARICHE\\SQLEXPRESS;Initial Catalog=carmonitor;integrated security = true;";
            public Connexion()
            {
     
                //
                // TODO: Add constructor logic here
                //
            }
     
            public SqlConnection open_onnection()
            {
                SqlConnection con = new SqlConnection(connexion);
                con.Open();
                return con;
            }
     
            public void close_onnection()
            {
                SqlConnection con = new SqlConnection();
                con.Close();
     
            }
        }
    }
    Merci d'avance mes amis!!!

  2. #2
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 493
    Points
    5 493
    Par défaut
    Bonjour, sur SQL server les patterns "insert or update" et "update or delete" sont réalisés à l'aide de la commande MERGE.

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    merge est dispo depuis sql server 2008 seulement je crois
    sinon le code sql suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if exists (select 1 from table where condition) 
        update ...
      else
        insert ...

Discussions similaires

  1. [MySQL] Insertion et mise à jour dans une importation : partie non traitée
    Par runcafre91 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 25/02/2010, 15h55
  2. [MySQL] Insertions et mise à jour SQL à partir d'un fichier texte lourd : optimiser un script
    Par zorbalegrec dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 17/07/2009, 15h16
  3. [PHP 5.2] Insertion et mise à jour de nouvelle lignes
    Par VooDooNet dans le forum Langage
    Réponses: 9
    Dernier message: 26/01/2009, 22h47
  4. Réponses: 5
    Dernier message: 24/10/2008, 10h43
  5. Insertion ou mise à jour impossible...
    Par kobe dans le forum Bases de données
    Réponses: 6
    Dernier message: 01/08/2005, 08h37

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