Génération d'un numéro de client unique au format : XX999999

Signaler
Messages postés
17
Date d'inscription
vendredi 9 juillet 2004
Statut
Membre
Dernière intervention
3 octobre 2005
-
Messages postés
303
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
24 avril 2009
-
Un numéro de client unique en base pour affecter a un nouveau client.


X : Caractère Alphabetique


9 : Chiffre





Contrainte historique : à l'origine les numéros de client étaient créés sur ce format de manière aléatoire, il est important de vérifier que le numéro de client générer n'est pas attribué


Voici la structure de ma classe :











using System;


using System.Data;


using System.Data.SqlClient;


using System.Diagnostics;


using WO.Common;


using WO.DataAccess;


using WO.Business.Products;


using WO.Persistence;











namespace WO.Business.Customers


{


public class Customer


{


#region Members


private int _customerId = 0;


private string _noClient;


#endregion








#region GetSetters


public int CustomerId { get { return _customerId; } }


public string No_Client { get { return _noClient; } set { _noClient = value; } }


#endregion





public Customer()


{


_customerId = 0;


}





public Customer(int customerId)


{


_customerId = customerId;


}





public void CreateNoClient()





{


string listChar ="ABCDEFGHIJKLMNOPQRSTUVWXYZ";





// TODO:


// je veux Créer la boucle qui permet de générer le numéro de client





// je veuxCréer une exception spécifique lorsqu'on va au bout de la boucle,


//lorsqu'il n'y a plus de numéros de client disponibles!


}


}



si vous pouvez m'aider

2 réponses

Messages postés
303
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
24 avril 2009
5
Voila comment je ferais

je comnmencerai par intégré cette classe a mon projet, http://www.csharpfr.com/code.aspx?ID=25063 , classe qui m'est largement utile en général

Ensuite, vis-a-vis le TODO.... ah et je m'excuse d'avance d'utiliser le += au lieu du Append que je n'ai jamais vraiment utiliser jusqu'a présent, les amateurs de perfs me corrigeront

string Final;
bool valide = false;
while( !valide )
{
Final = "";
Final += listChar[ Hasard.Random( 26 ) ];
Final += listChar[ Hasard.Random( 26 ) ];
Final += Hasard.Random( 9 );
Final += Hasard.Random( 9 );
Final += Hasard.Random( 9 );
Final += Hasard.Random( 9 );
Final += Hasard.Random( 9 );
Final += Hasard.Random( 9 );
// ici tu recherche dans ta liste savoir si il existe
valide = !TrouveDansTaListe();
}

Il y a une maniere plus propre de le faire et plus rapide comem dit plus haut, mais celle-ci fonctionnera très bien.

Eric
Messages postés
303
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
24 avril 2009
5
sinon, pour savoir si toutes les possibilités ont étés effeurées, vérifier si le nombre d'entré est égal a 359 254 116 soit le maximu mde possibilités si je ne me suis pas trompé

Eric