Comment rendre un identifiant auto-incrément en csharp

cs_adlerman
Messages postés
7
Date d'inscription
mardi 9 mars 2010
Statut
Membre
Dernière intervention
15 juin 2011
- 8 mars 2011 à 02:16
moustaf90
Messages postés
3
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
7 février 2012
- 7 févr. 2012 à 14:47
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

billou_13
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
29
8 mars 2011 à 09:55
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
---------------------
0
cs_adlerman
Messages postés
7
Date d'inscription
mardi 9 mars 2010
Statut
Membre
Dernière intervention
15 juin 2011

9 mars 2011 à 01:56
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.
0
cs_jopop
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
9 mars 2011 à 09:39
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 !! ^^
0
cs_adlerman
Messages postés
7
Date d'inscription
mardi 9 mars 2010
Statut
Membre
Dernière intervention
15 juin 2011

9 mars 2011 à 23:16
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
snistre
Messages postés
1
Date d'inscription
lundi 13 décembre 2010
Statut
Membre
Dernière intervention
15 mars 2011

15 mars 2011 à 14:16
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;
0
cs_adlerman
Messages postés
7
Date d'inscription
mardi 9 mars 2010
Statut
Membre
Dernière intervention
15 juin 2011

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

22 juin 2011 à 17:26
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
0
cs_ablo2sylla
Messages postés
15
Date d'inscription
vendredi 22 avril 2011
Statut
Membre
Dernière intervention
30 novembre 2011

22 juin 2011 à 17:35
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.
0
Whismeril
Messages postés
17804
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
25 septembre 2022
616
23 juin 2011 à 07:32
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
0
cs_ablo2sylla
Messages postés
15
Date d'inscription
vendredi 22 avril 2011
Statut
Membre
Dernière intervention
30 novembre 2011

23 juin 2011 à 11:50
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
0
moustaf90
Messages postés
3
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
7 février 2012

7 févr. 2012 à 14:44
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
0
moustaf90
Messages postés
3
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
7 février 2012

7 févr. 2012 à 14:46
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
0
moustaf90
Messages postés
3
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
7 février 2012

7 févr. 2012 à 14:47
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
0