begin process at 2008 05 17 13:44:40
1 174 053 membres
172 nouveaux aujourd'hui
13 974 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : insert et objet [ Algorithme / Maths ] (babe59)

insert et objet le 05/05/2008 08:55:54

babe59
Bonjour,

Hypothèse : 
   - une table TBL_CLIENT : données es clients 
   - un objet "Client" qui permet (entre autre) de géré un client. Cet objet contient des méthodes et des propriétés (correspondantes aux différentes colonnes de ma table TBL_CLIENT)

Question:
Je voudrais implémenter une méthode "Client.Add" afin d'ajouter un nouveau client dans ma table TBL_CLIENT. Comment dois-je m'y prendre pour passer tous les champs de l'insert :
   1° Faire une structure qui sera en paramétre de ma méthode .Add ?
   2° Utiliser toutes les propriétés de l'objet "Client" que le programme appelant devra obligatoirement initialiser ?
   3° Passer toutes les champs de l'insert un a un en paramétre de ma méthode ".Add" ?
   4° Autre chose ?

MErci

DT

Re : insert et objet le 05/05/2008 16:13:03

jacksparoow
Je vais te proposer deux manières pour faire la chose mais il y en a plusieurs :

la première est de passer par une requête paramètrée comme ça montre cet article
 
la deuxième est de passer par une simple replace(), exemple :

req = "Insert into table_client (id, nom) values(@id,@nom)".Replace("@id",ObjetClient.ID.toString()).Replace("@nom", ObjetClient.Nom.toString());
_____________________________________________________________________
Yassine BENNANI - Ingénieur en génie logiciel & multimédia (Consultant SI)

Re : insert et objet le 05/05/2008 17:21:01

babe59
j'ai du mal m'exprimer. Concerant la requete SQL, pas de souci. J' essaye de respecter la notion des 3 couches. Ma question concerné plus le passage de paramètre à la méthode qui se charge de faire l'insert
Explication dans le "source"

Methode 1 :
Client = new Client();
Client.numero = 123;
Client.nom = "eee";
Client.adresse = "aaa";
Client.Add();


Methode 2 :
Client = new Client();
Client.Add (numero, nom, adresse);
// ou numero, nom, adresse sont des variables


Methode 3:
StructClient structClient = new StructClient
structClient.numero = 123;
structClient.nom = "eee";
structClient.adresse= "aaaa";
Client = new Client();
Client.Add (structClient);


Qu'elle est la mieux, y en a t il d'autres ?


DT

Re : insert et objet le 05/05/2008 22:37:39

jacksparoow
D'aprés ce que je vois la méthode Add existe à l'intérieur da la classe Client donc ta ps respecté l'architecture 3 couche car là c'est une classe métier qui est client et qui se charge en plus d'accéder à la base de donnée.

En tous cas si la méthode Add existe à l'intérieur de la classe client donc y a aucun besoin de lui passer des paramètres car elle peut les avoir juste en utilisant le mot clé this.

Methode 1 :
Client = new Client();
Client.numero = 123;
Client.nom = "eee";
Client.adresse = "aaa";
Client.Add();

je préfère ps ni la deuxième ni la troisième prk?? et bien par ce que la troisième est plus lourde et la deuxième tu passe par des variables qui n'ont rien avoir avec ton objet Client cela veut dire que tu ajoute dans la table alors que ton objet n'a ps encors d'identité et à toi de voir.

_______________________________________________________________
Yassine BENNANI
- Ingénieur en génie logiciel & multimédia (Consultant SI)

Re : insert et objet le 09/05/2008 00:19:04

coq
(Admin CS)
Salut,

"req = "Insert into table_client (id, nom) values(@id,@nom)".Replace("@id",ObjetClient.ID.toString()).Replace("@nom", ObjetClient.Nom.toString());"
Une requête semi paramétrée donc... ce truc est totalement à proscrire.


/*
coq
MVP Visual C#
CoqBlog
*/

Re : insert et objet le 09/05/2008 01:44:03

jacksparoow
pourquoi???

Les fins justifient les moyens_________________________________________________
Yassine BENNANI
- Ingénieur en génie logiciel & multimédia (Consultant SI)

Re : insert et objet le 09/05/2008 09:23:03

coq
(Admin CS)
Ca ne résoud en rien le problème de formatage (même si probablement iunexistant ici, sauf peut être sur grandes valeurs de ID) et celui de l'injection SQL.
Autant écrire directement
req = String.Format("Insert into table_client (id, nom) values({0},{1})", ObjetClient.ID.ToString(), ObjetClient.Nom.ToString()); // A NE PAS FAIRE


/*
coq
MVP Visual C#
CoqBlog
*/


Classé sous : insert, table, objet, client, tbl

Participer à cet échange

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS