Seth77
Messages postés572Date d'inscriptionmardi 30 avril 2002StatutMembreDernière intervention 4 mai 2020
-
4 sept. 2006 à 14:31
Seth77
Messages postés572Date d'inscriptionmardi 30 avril 2002StatutMembreDernière intervention 4 mai 2020
-
13 nov. 2006 à 09:37
Salut
voila je commence a faire un package pour l'accés à la base de données ...qu'en pensez vous ?
c juste un debut
je pense ensuite faire les ajout par SQL...
--------------------------------------------------------------------------------------------------------------------------------------
namespace Create_BD
{
class DB_Type
{
static public String getBool() { return "BIT"; }
static public String getShort() { return "SHORT"; }
}
class DB_Champ
{
private String Nom;
private String Type;
private int Size = 0;
class DB_Table
{
private String Nom;
private ArrayList ListeChamp;
public DB_Table()
{
this.ListeChamp = new ArrayList();
}
public void setNom(String theNom) {this.Nom = theNom;}
public String getNom() {return this.Nom;}
public bool Add(DB_Champ theChamp)
{
for (int i = 0; i < this.ListeChamp.Count; i++)
{
if (((DB_Champ)this.ListeChamp[i]).getNom() == theChamp.getNom())
return false;
}
ListeChamp.Add(theChamp);
return true;
}
public void toConsole()
{
Console.WriteLine("------------------------------------------------------------------");
Console.WriteLine(this.Nom);
for (int i = 0; i < this.ListeChamp.Count; i++)
{
((DB_Champ)this.ListeChamp[i]).toConsole();
}
Console.WriteLine("------------------------------------------------------------------");
}
}
class Create_DB
{
private String DBPath;
private ArrayList ListTable;
public String getDBPath()
{
return this.DBPath;
}
public void setDBPath(String theDBPath)
{
this.DBPath = theDBPath;
}
public void AddTable(DB_Table theTable)
{
this.ListTable.Add(theTable);
}
public Create_DB() {
this.DBPath = "";
this.ListTable = new ArrayList();
}
}
}
--------------------------------------------------------------------------------------------------------------------------------------
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 4 sept. 2006 à 14:42
Salut,
j'ai parcouru en diagonale, premiere remarque que j'ai a faire, c'est qu'en C# on utilises le camelCasing pour les champs et on utilise des propriétés, et non pas des accesseurs.
Par exemple, ton champ privé "Nom" devient "nom"
et tu remplaces
public void setNom(String theNom) {this.Nom = theNom;} et
public String getNom() { return this.Nom; }
par
public string Nom
{
get { return this.nom; }
set { this.nom = value;}
}
tu peux tout a fait omettre le set ou le get, ou leur rajouter du code
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 4 sept. 2006 à 15:03
Seconde remarque, si tu bosses en .Net 2, n'utilises pas un ArrayList, mais une List<DB_Champ>;
Autrement, plutot que d'avoir ca :
public bool Add(DB_Champ theChamp)
{
for (int i = 0; i < this.ListeChamp.Count; i++)
{
if (((DB_Champ)this.ListeChamp[i]).getNom() == theChamp.getNom())
return false;
}
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 4 sept. 2006 à 15:13
les fonctions getNom et setNom deviennent Nom
en fait tu as :
private string nom;
public string Nom
{
get { return this.nom;}
set { this.nom = value;}
}
et tu les appeles ainsi :
tonObjet.Nom = "aaa"; // ce qui te servait de setNom
string leNom = tonObjet.Nom; // ce qui te servait de getNom
Seth77
Messages postés572Date d'inscriptionmardi 30 avril 2002StatutMembreDernière intervention 4 mai 20201 4 sept. 2006 à 15:16
Ah ok ...
mais cela marche aussi en mettant string "leNom = tonObjet.getNom();" pour le get ?
et si j'ai bien compris si je rajoute une fonction Toto j'aurais une fonction "TotoNom".....???
Seth77
Messages postés572Date d'inscriptionmardi 30 avril 2002StatutMembreDernière intervention 4 mai 20201 4 sept. 2006 à 15:29
D'accord ...en fait cela permet de modifier la variable private en passant par set et get comme si elle etait en public ...
Sinon c normal qu'il n y ait pas d'espace "publicstring Nom" ?
Seth77
Messages postés572Date d'inscriptionmardi 30 avril 2002StatutMembreDernière intervention 4 mai 20201 4 sept. 2006 à 15:38
Ok
Une chose encore ...cela sert a quoi override ? si j'ai bien compris il faut mettre override pour definir une fonction qui est presente dans la classe abstraite dont l'objet est herité ?
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 4 sept. 2006 à 15:42
Voila, le mot clé override permet de reimplémenter un membre hérité d'une classe.
Dans ton cas, il s'agit de redefinir les méthodes de la classe Object (qui n'est pas abstraite)
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 4 sept. 2006 à 17:12
La méthode Equals prend en parametre object.
Sinon, oui, as effectue bien un cast, sauf si tu ne passe pas un DB_Champ en parametre, ce qui alors renverra null.
Il faut d'ailleurs controler si l'instance de DB_Champ que j'ai nommée 't' n'est pas null, ce que j'ai oublier de faire dans le code ;)