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 :

[C#]Problème pour faire un max


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Par défaut [C#]Problème pour faire un max
    Bonjour à tous,
    J'aimerai faire l'équivalent d'un max sql pour générer un numéro au lieu de mettre celui-ci en automatique. J'utilise un dataset, j'arrive à faire le count avec cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.BindingContext[dbDs, dbDs.livre.TableName].Count
    mais j'aimerai faire la même chose avec un max et je n'arrive pas à trouver. Merci

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Par défaut
    Si tu as Linq de dispo dans ta version, tu peux le faire très simplement.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Par défaut
    Merci, j'ai regardé, je ne sais pas si cela peut aller avec mes sqldataadapter et mon dataset. Voici un bout du code :
    Code du menu principal :
    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
     
    public Menuprincipal()
            {
                InitializeComponent();
                //efface les lignes de l'ensemble des tables du dataset
                dbDs_bibliotheque1.Clear();
                //connecte le dataset et la base de données
                dbAd_auteur.Fill(dbDs_bibliotheque1, "auteur");
                //pour la modification des lignes de la table auteur
                dbDs_bibliotheque1.auteur.RowChanged += new DataRowChangeEventHandler(auteur_RowChanged);
                //pour supprimer des lignes de la table auteur
                dbDs_bibliotheque1.auteur.RowDeleted += new DataRowChangeEventHandler(auteur_RowDeleted);
            }
     
    private void auteur_RowChanged(object sender, DataRowChangeEventArgs e)
            {
                //si modification et ajout
                if (e.Action == DataRowAction.Add || e.Action == DataRowAction.Change)
                {
                    try
                    {
                        //mise à jour de auteur
                        dbAd_auteur.Update(new DataRow[] { e.Row });
                    }
                    catch (Exception pb)
                    {
                        MessageBox.Show(pb.ToString());
                        e.Row.RejectChanges();
                    }
                }
            }
     
            private void auteur_RowDeleted(object sender, DataRowChangeEventArgs e)
            {
                //si supression
                if (e.Action == DataRowAction.Delete)
                {
                    try
                    {
                        //mise à jour de auteur
                        dbAd_auteur.Update(new DataRow[] { e.Row });
                    }
                    catch (Exception pb)
                    {
                        MessageBox.Show(pb.ToString());
                        e.Row.RejectChanges();
                    }
                }
            }
     
    private void bt_entree_auteur_Click(object sender, EventArgs e)
            {
                Entreeauteur fentauteur = new Entreeauteur(dbDs_bibliotheque1);
                fentauteur.Show();
            }
    Voici le code du formulaire où lorsque je clique sur le bouton ajout, cela doit faire un nouveau numéro :
    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
     
    //dataset
            dbDs_bibliotheque dbDs;
            //dataview
            DataView dbDv;
            public Entreeauteur()
            {
                InitializeComponent();
            }
     
            public Entreeauteur(dbDs_bibliotheque p_dbDs)
                : this()
            {
                //récupère les valeurs du dataset
                dbDs = p_dbDs;
                //création d'un nouveau dataview
                dbDv = new DataView(dbDs.auteur);
                //ordre de tri
                dbDv.Sort = "nom ASC";
                //suspend la liaison des données
                this.BindingContext[dbDv].SuspendBinding();
                //rétablit la liaison des données
                this.BindingContext[dbDv].ResumeBinding();
                //numéro de l'auteur
                this.txt_num_auteur.DataBindings.Add("Text", dbDv, "numeroauteur");
                //nom de l'auteur
                this.txt_nom_auteur.DataBindings.Add("Text", dbDv, "nom");
                //prenom de l'auteur
                this.txt_prenom_auteur.DataBindings.Add("Text", dbDv, "prenom");
                affichePosCpt();
            }
     
    private void bt_ajout_Click(object sender, EventArgs e)
            {
                //ajout d'un nouveau auteur
                this.BindingContext[dbDv].AddNew();
                affichePosCpt();
            }

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Par défaut
    je voulais dire qqch du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new DataTable().AsEnumerable().Max(row => row.Field<int>("MaColonne"))

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Par défaut
    Ok, pour mon cas, cela donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new DataTable().AsEnumerable().Max(row => row.Field<int>("numeroauteur"))
    Cela se fait comme cela après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private void bt_ajout_Click(object sender, EventArgs e)
            {
                //ajout d'un nouveau auteur
                this.BindingContext[dbDv].AddNew();
                this.txt_num_auteur.Text = new DataTable().AsEnumerable().Max(row => row.Field<int>("numeroauteur")).ToString()+1;
                affichePosCpt();
            }
    Désolé, j'ai un peu de mal avec C#, car c'est dans un formulaire que je veux mettre le nouveau numéro pour pouvoir enregistrer après grâce à mon row_change

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 159
    Par défaut
    Bonjour à tous,
    Je voudrais savoir si ce que j'ai mis est au bon endroit car cela me met une erreur, merci.

Discussions similaires

  1. problème pour faire un insert avec une image
    Par vbcasimir dans le forum Modules
    Réponses: 3
    Dernier message: 02/11/2005, 09h21
  2. Réponses: 5
    Dernier message: 24/09/2005, 20h31
  3. problème pour faire des blocs
    Par tinkye_winkye dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 04/01/2005, 14h13
  4. [SQL] problème pour faire ma requete
    Par seb.briet dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/12/2004, 16h51
  5. [FLASH MX2004] Problème pour faire un bouton play
    Par melanie075 dans le forum Flash
    Réponses: 13
    Dernier message: 16/12/2004, 22h55

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