Commnet Utiliser DataTable ???? ou Stocker temporairement les données ???

arthur007 Messages postés 22 Date d'inscription dimanche 11 janvier 2004 Statut Membre Dernière intervention 31 janvier 2006 - 29 déc. 2005 à 14:32
arthur007 Messages postés 22 Date d'inscription dimanche 11 janvier 2004 Statut Membre Dernière intervention 31 janvier 2006 - 5 janv. 2006 à 20:56
Bonjour le monde,
Je dois faire une page web en ASP.Net qui permetera à l'utilisateur de passer une commande. Cette commande peut etre constitié de plusieurs Ligne de commandes (détail). J'ai pensé à utiliser le control "DataTable" pour stocker temporairement tous les Lignes de commandes et puis exécuter ca une seule fois (ce qui permet de reduire Allaer et retour vers le serveur). mais je ne sais pas comment utiliser dynamiquement DataTable: c.a.d: ajouter, ou supprimer dynamiquement des records dans DataTable.
Puisque je suis débutant eb ASP.Net, je vous demande votre aide. Si qlq a un bon exemple sur DAtaTable. Ou encore qui qlqlpeut me conseiller d'utiliser autre choses que DataTable pour stocker temporaire des records.

Merci d'avance

6 réponses

cs_azra Messages postés 425 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 13 juillet 2007 1
29 déc. 2005 à 18:16
Bonjour,

Il faut d'abord définir les colonnes de ta datatable.
Je n'ai pas la synthaxe exacte, pas de VS ici, mais de mémoire:

Datatable dt = new datatable();
dt.colums.add("nom", type eventuellement)

Tu ajoutes le nombre de colonnes que tu veux de cette façon

après tu declares une datarow.
Datarow dr = dt.newrow() ou createnewrow(), pour dire que tu veux creer une ligne de ta datatable.

Puis tu rajoutes des valeurs dans ta ligne:
dr[0] ou dr["nom colonne"], pour chaque colonne que tu as définit.

Et pour terminer, tu rajoutes la ligne a ta table:
dt.rows.add(dr);

Bon courage,


<HR>
Azra (Florent) - MVS - MCAD.NET
0
arthur007 Messages postés 22 Date d'inscription dimanche 11 janvier 2004 Statut Membre Dernière intervention 31 janvier 2006
29 déc. 2005 à 21:55
Merci Azra, mais ta réponse ne reponds pas à 100% à ma question: en fait moi je cherche comment faire pour ajouter ou suprimer DYNAMIQUEMENT des records à une DataTable.
exemple:
j'ai ma DataTable avec 3 records et c bien reliée à une dataset.
maintenant j'aimerai AJOUTER un 4 records ( ou suprimer un records). Comment dois je faire?? Est ce qu'il faur redessiner de nouveau toute la DataTable, ou existe des Astuces ( methodes...)

Merci si qlq peut m'aider
Autrement: Comment créer un formulaire de saisie de données de plusieurs lignes (non defini à l'avance)
0
cs_azra Messages postés 425 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 13 juillet 2007 1
30 déc. 2005 à 14:37
Re-bonjour :)

Et bien sur le modéle que je t'ai donné juste au dessus, tu peux a tout moment ajouter des "rows" ou les "supprimer".
Tu as plusieurs méthodes pour ceci dans DataTable.rows.* .

Tu as ta datatable, tu peux à tout moment jouer sur les lignes dans ton code behind.

Bon courage,


<HR>
Azra (Florent) - MVS - MCAD.NET
0
arthur007 Messages postés 22 Date d'inscription dimanche 11 janvier 2004 Statut Membre Dernière intervention 31 janvier 2006
30 déc. 2005 à 17:33
Re-bonjour ,
Merci pour ta réponse. Mais, malgré que j'ai essayé je n'arrive pas. quand j'essaye d'ajouter un nouveau ROW (record) je perd les autres.
voici mon code:


' Création et ajout d'une table
Dim dt As New DataTable("Noms")



' Définition des colonnes
dt.Columns.Add("Nom",
GetType(
String))
dt.Columns.Add("Date",
GetType(DateTime))
dt.Columns.Add("Age",
GetType(
Integer))



' Ajout de données
Dim r
As DataRow
r = dt.NewRow
r("Nom") = "André"
r("Date") =
New DateTime(2003, 12, 1)
r("Age") = 18
dt.Rows.Add(r)

r = dt.NewRow
r("Nom") = "Bernard"
r("Date") =
New DateTime(2003, 12, 5)
r("Age") = 17
dt.Rows.Add(r)



'---- Affiche les données, pour vérifier
dg.DataSource = dt
'ds
dg.DataBind()

Jusquà ici tout est OK: le dataGrid s'affiche bien et avec les 2 records de la DAtaTable.
Mais si maintenant je veux ajouter dynamiquement à chaque fois que je clique sur un boton, je veux ajouter un records de plus: par exemple cci;


r = dt.NewRow
r("Nom") = "Claude"
r("Date") = New DateTime(2003, 12, 8)
r("Age") = 22
dt.Rows.Add(r)

Question: ALORS COMMENT FAIRE? d'ajouter ce records sans perdre les 2 precedents.

Donc si tu as ( ou qlq d'autre) a une idée, merci de m'aider. Car je suis DESESPERE !!!

Merci à vous
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_azra Messages postés 425 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 13 juillet 2007 1
30 déc. 2005 à 21:45
Tu te place dans l'évenement onClick de ton button.

Tu rajoutes ta ligne, comme dans le code que tu as mis, puis tu refais
"dg.DataSource = dt
'ds
dg.DataBind()"

Car c'est lorsque tu vas faire le Databind que tu vas lier ta datable a ton gridview.

Si tu veux faire qu'une seule fois le databind(), tu peux le faire dans le Page_PreRender.

Tu y es presque, courage :)


<HR>
Azra (Florent) - MVS - MCAD.NET
0
arthur007 Messages postés 22 Date d'inscription dimanche 11 janvier 2004 Statut Membre Dernière intervention 31 janvier 2006
5 janv. 2006 à 20:56
Merci AZRA pour tes encouragements, mais je n'arrive pas!! et c'est la galère. Si tu as une idée, ca sera geltil de ta part. ou si qlq d'autre peut m'aider ou a une autre idée pour rélaiser avec ASP.net un formaulaire de commande (detail de commande), ca sera tres sympa de votre part de me sauver au secour ;-)
0
Rejoignez-nous