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.
A voir également:

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 19020 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 15 avril 2024 656
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
Rejoignez-nous