Comment rendre un identifiant auto-incrément en csharp

Signaler
Messages postés
7
Date d'inscription
mardi 9 mars 2010
Statut
Membre
Dernière intervention
15 juin 2011
-
Messages postés
3
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
7 février 2012
-
Salut à tous,
Je suis sur un projet de classe dont l'objectif est d'analyser et de créer un système qui permet de gérer les comptes bancaires en C#.
J'ai quelques soucis au sujet d'implémenter le numéro de compte bancaire de manière à ce qu'il soit auto incrémente et que j'évite sa saisie au niveau de mon Winforms. De sorte qu'au niveau de la création d'un compte que je puis récupérer le numéro généré automatiquement et le sauvegarde avec les autres infos relatives au clients à qui appartiendrai le numéro de compte.
En effet, je ne vois pas comment m'y prendre à ce niveau; donc si vous pourriez vous donnez la peine de m'apporter un peu de lumière à ce sujet je vous en serais très reconnaissant.
Merci.
Votre Néophyte.

13 réponses

Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
17
Bonjour,

Les bases de données disposent déjà d'un système équivalent à ton besoin: AUTO_INCREMENT.
Il te suffit donc d'insérer une nouvelle donnée dans la table ayant une colonne de ce type pour auto-incrémenter une valeur.
En faisant une recherche, tu pourras même trouver facilement comment récupérer cette valeur lors de l'insertion en base de données.

Remarque: cela est vrai pour tous les types de bases de données (donc, tu peux très bien utiliser une base de données de type MS SQL Server Express si tu ne disposes pas d'une base de données dédiées pour ton projet).

Bon développement,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Messages postés
7
Date d'inscription
mardi 9 mars 2010
Statut
Membre
Dernière intervention
15 juin 2011

Salut,
Je tiens d'abord à te remercier pour ta réponse, merci!
Ce que tu dis est vrai par rapport à la base de données, mais seulement j'aurais affaire au fichier XML pour sauvegarder mes données.
Je me disais juste que ce serais peut être possible d'implémenter auto- incrémentation au niveau code, c'est-à-dire que à chaque fois que je ferais appel au constructeur de la classe concernée, je pourrais récupérer le dernier numéro puis l'incrémenter, etc...
Néanmoins je vais continuer à faire des recherches...
Encore une fois merci.
Cordialement.
Votre néophyte.
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
Salut,

* Alors si tu veux faire un auto-incrémente sur le constructeur tu peux utiliser une variable membre globale statique (même objet partagé par toutes les instances de ta classe). Par contre il faudra l'initialiser avec la valeur max au lancement de l'appli, en lisant tes fichiers XML.

* Si tu cherches juste à avoir une valeur unique pour chaque instance, sans notion de compteur, tu peux utiliser les Guid (Global Unique ID). Il s'agit d'un objet qui te donne une valeur du genre c44c80c5-52d2-4ce5-9906-8dcbca73bbdd, avec la ligne :
	System.Guid.NewGuid().ToString();


Merci Merci !! ^^
Messages postés
7
Date d'inscription
mardi 9 mars 2010
Statut
Membre
Dernière intervention
15 juin 2011

Salut,
Je te remercie, c'est justement ce que je dois faire, utiliser une variable globale avec notion de compteur, de sorte qu'à chaque création de compte celui-ci s'incrémente.
encore une fois, merci!
Cordialement.
Votre Néophyte.
Messages postés
1
Date d'inscription
lundi 13 décembre 2010
Statut
Membre
Dernière intervention
15 mars 2011

ds.Tables["Utilisateur"].Columns["ID_user"].AutoIncrement = true;
ds.Tables["Utilisateur"].Columns["ID_user"].AutoIncrementSeed = ds.Tables["Utilisateur"].Rows.Count + 1;
ds.Tables["Utilisateur"].Columns["ID_user"].AutoIncrementStep = 1;
Messages postés
7
Date d'inscription
mardi 9 mars 2010
Statut
Membre
Dernière intervention
15 juin 2011

Slt,
Je te remercie pour le temps et le codes que tu as envoyé.
Cordialement.
Votre Néophyte.
Messages postés
15
Date d'inscription
vendredi 22 avril 2011
Statut
Membre
Dernière intervention
30 novembre 2011

Salut
Je suis debutant en VB 2008. J'ai créer mes tables MS SQL Server Express. Je voudrais automatiser la création du numero de compte en inserant :

1 - le numero de branche où le compte est créér : - les 4 premiers chiffres
2 - l'année de création du compte : - les 4 second chiffres,
3 - le mois et jours de création : - les 4 chiffres suivants dont 2 chiffres pour
le mois et deux pour le jours,
4 - le code du compte : - les 2 chiffres pour le code du type de compte,
5 - le numero d'enregistrement du client : - les 4 derniers chiffres

par exemple : 0000-0000-00-00-00-0000
Messages postés
15
Date d'inscription
vendredi 22 avril 2011
Statut
Membre
Dernière intervention
30 novembre 2011

Salut
Je suis debutant en VB 2008. J'ai créer mes tables en VB 2008 connecté à MS SQL Server Express. Je voudrais automatiser la création du numero de compte en inserant :

1 - le numero de branche où le compte est créér : - les 4 premiers chiffres
2 - l'année de création du compte : - les 4 second chiffres,
3 - le mois et jours de création : - les 4 chiffres suivants dont 2 chiffres pour le mois et deux pour le jours,
4 - le code du compte : - les 2 chiffres pour le code du type de compte,
5 - le numero d'enregistrement du client : - les 4 derniers chiffres

par exemple : 0000-0000-00-00-00-0000
Comment le faire en VB 2008 ? J'ai besoin de votre aide.
Messages postés
14638
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
29 avril 2020
392
Bonjour, vu que tu es dans le forum C#, et que du point de VB je me suis arrêté à VB6, je peux juste te donner une piste de protocole.

-Pour le numéro de branche, je suppose qu'ils sont préétablis, auquel cas tu peux utiliser une liste ou un tableau et on dira que Branche(i) correspond à la branche sélectionnée (enfin si les parenthèses sont toujours utilisées pour les index sinon c'est Branche[i]).
-Pour la date, il faut l'extraire de la date d'aujourd'hui, il doit exister un objet "Now" ou "Today" de tête en c# il me semble que c'est DateTime.Now.Year, .Day et .Month.
-Pour le type de compte je pars du même principe que pour la branche : TypeCpte(j)
-Pour le numéro d'enregistrement du client, s'il existe déjà il te faut le récupérer sinon le générer comme indiqué plus haut dans cette discussion.

Ensuite il te faut tout concatener, en VB6 de mémoire c'était:
Dim Numero As String
Numéro = Branche(i) & "-" Annee & "-" etc.


Si tu as enregistré tes variables dans un tableau, il existe une fonction join qui crée un string en concatenant chaque élément du tableau avec un séparateur défini (ici "-").

Whismeril
Messages postés
15
Date d'inscription
vendredi 22 avril 2011
Statut
Membre
Dernière intervention
30 novembre 2011

Merci Whismeril pour ta contribution

Mais je vous assure que je n'arrive pas du tout a m'en sortir

J'utilise Combobox control pour le code de la Branche et pour le type de compte,
Le numero d'enregistrement du client est automatique et par ordre d'arriver (j'ai choisi : AUTO_INCREMENT.),
et le control : DateTimePicker pour la date de creation

Pouvez-vous me faire parvenir quelques lignes de commande (le programme) me permettant de resoudre ce probleme ?
S'il vous plait, je compte entierement sur vos contributions car pour le moment je suis bloquer et je ne sais que faire.

Merci d'avance a vous
Messages postés
3
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
7 février 2012

J'ai besoin d'aide pour un incrémentation!

J'ai un identifiant dans une base de donnée mysql qui commance par 120001 et j'aimerai que l'incrémentation se crée automatique à chaque chargement de la page(120002, 120003.......)

c'est urgent

mer6
Messages postés
3
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
7 février 2012

J'ai besoin d'aide pour une incrémentation!

J'ai un identifiant dans une base de donnée mysql qui commance par 120001 et j'aimerai que l'incrémentation se crée automatique à chaque chargement de la page (120002, 120003.......)
c'est urgent

mer6
Messages postés
3
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
7 février 2012

J'ai besoin d'aide pour une incrémentation!

J'ai un identifiant dans une base de donnée mysql qui commance par 120001 et j'aimerai que l'incrémentation se crée automatique à chaque chargement de la page (120002, 120003.......)
c'est urgent

mer6


moustapha