Comment rendre un identifiant auto-incrément en csharp
cs_adlerman
Messages postés7Date d'inscriptionmardi 9 mars 2010StatutMembreDernière intervention15 juin 2011
-
8 mars 2011 à 02:16
moustaf90
Messages postés3Date d'inscriptionmardi 7 février 2012StatutMembreDerniè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.
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 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
---------------------
cs_adlerman
Messages postés7Date d'inscriptionmardi 9 mars 2010StatutMembreDernière intervention15 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.
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 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 :
cs_adlerman
Messages postés7Date d'inscriptionmardi 9 mars 2010StatutMembreDernière intervention15 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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_ablo2sylla
Messages postés15Date d'inscriptionvendredi 22 avril 2011StatutMembreDernière intervention30 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
cs_ablo2sylla
Messages postés15Date d'inscriptionvendredi 22 avril 2011StatutMembreDernière intervention30 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.
Whismeril
Messages postés18797Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 3 décembre 2023645 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 "-").
cs_ablo2sylla
Messages postés15Date d'inscriptionvendredi 22 avril 2011StatutMembreDernière intervention30 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.
moustaf90
Messages postés3Date d'inscriptionmardi 7 février 2012StatutMembreDerniè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.......)
moustaf90
Messages postés3Date d'inscriptionmardi 7 février 2012StatutMembreDerniè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
moustaf90
Messages postés3Date d'inscriptionmardi 7 février 2012StatutMembreDerniè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