Rechercher : dans
Par :

Récupérer lignes datagridview

Dernière réponse le 8 fév 2008 à 15:55:18 sistaroro, le 7 fév 2008 à 21:43:59 
 Signaler ce message aux modérateurs

Bonjour,
j'ai un petit souci. Voila mon problème: j'ai un datagridview ou il y a des données. Et en fait je veux insérer une partie de ces données dans une table.
Pour cela je le fait avec une boucle mais seulement la première ligne du datagridview est insérée dans la base de données. Voici le code. Merci d'avance.





Public Sub insertion_ligne_facturebdd(ByVal numero_facture AsInteger)



'Déclaration de la connexion à la base de données'
Dim MaConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=librairie.mdb")


Dim Macommande As OleDbCommand = MaConnexion.CreateCommand()

Dim i AsInteger

Dim j AsInteger

j = ajouter_facture.grille.Rows.Count

For i = 0 To i = j


'Conversion de la quantité en integer'
Dim quantite AsInteger

quantite = CType(ajouter_facture.grille(3, i).Value.ToString, Integer)


'Conversion du numéro du produit'
Dim num_produit AsInteger

num_produit = CType(ajouter_facture.grille(0, i).Value.ToString, Integer)



'Commande avec la requete d'insertion dans la table composer' Macommande.CommandText = "INSERT INTO composer(num_facture,num_produit,quantité_achetée) VALUES(" & numero_facture & "," & num_produit & "," & quantite & ") ;"

Dim MyDataAdapter AsNew OleDbDataAdapter(Macommande)

'On fait appel au dataAdapter puis on ouvre la connexion


MaConnexion.Open()


'on éxécute la commande
MyDataAdapter.UpdateCommand = Macommande

MyDataAdapter.UpdateCommand.ExecuteNonQuery()


Dim Macommande3 As OleDbCommand = MaConnexion.CreateCommand()

'Commande avec la requete pour retirer le stock dun produit'
Macommande3.CommandText = "UPDATE produit SET stock_actuel=(stock_actuel-" & quantite & ") WHERE num_produit=" & num_produit & ";"


Dim MyDataAdapter3 AsNew OleDbDataAdapter(Macommande3)

'On fait appel au dataAdapter puis on ouvre la connexion

'on éxécute la commande

MyDataAdapter3.UpdateCommand = Macommande3

MyDataAdapter.UpdateCommand.ExecuteNonQuery()



'et on ferme la connexion
MaConnexion.Close()

Next



End Sub

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « récupérer lignes datagridview » dans :
[Windows XP] Assistance / Sauvegarde / Récupération / Réparation VoirIl existe plusieurs méthodes de prévention et d'action en cas de gros pépin, préconisées dans un ordre de gravité approximativement croissant : L'assistance à distance La restauration du système La récupération automatique du système...
CopyTrans - Récupérer la musique d'un iPod/iPhone VoirComment récupérer la musique d'un iPod ou d'un iPhone? Introduction Télécharger et installer le logiciel Sauvegarder le contenu Pour en savoir plus A voir également Remerciement Introduction Personne n'est à l'abri d'un problème avec...
Introduction aux courants porteurs en ligne (CPL) VoirIntroduction aux CPL On retient sous l'appellation CPL « Courants Porteurs en Ligne » toute technologie qui vise à faire passer de l'information à bas débit ou haut débit sur les lignes électriques en utilisant des techniques de modulation...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
Publicité en ligne VoirIntroduction à la publicité en ligne La publicité en ligne est un moyen permettant aux webmasters de rentabiliser financièrement leur site internet et de leur permettre de couvrir les coûts d'hébergement et de noms de domaine. Il s'agit également...

1

Scalpweb, le 8 fév 2008 à 08:26:43

L'erreur est ici :

For i = 0 To i = j

Il faut écrire :

For i = 0 To j

Répondre à Scalpweb

2

sistaroro, le 8 fév 2008 à 12:50:44

Merci beaucoup, mais maintenant j'ai un autre souci. Je veux convertir le texte contenu dans certaines cellules en integer.Mais je ne sais pas comment faire pour récupérer la valeur de type string.

Répondre à sistaroro

3

Scalpweb, le 8 fév 2008 à 13:37:49

En VB, les conversions sont implicites.

Tu peux très bien faire :

var_Integer = var_String1 + var_String2

Ou :

var_String = var_Int*var_Int

Répondre à Scalpweb

4

sistaroro, le 8 fév 2008 à 13:41:38

Je n'ai pas très bien compris.je veux récupérer le texte qui est dans la cellule et le convertir en integer pour l'insérer dans la base de données

Répondre à sistaroro

5

Scalpweb, le 8 fév 2008 à 13:42:55

Apparemment, tu as déjà réussi :

num_produit = CType(ajouter_facture.grille(0, i).Value.ToString, Integer)  

Répondre à Scalpweb

6

sistaroro, le 8 fév 2008 à 14:08:58

Ben sa ne fonctionne pas.je veux récupérer le numéro des produits qui existent dans la base et j'ai un message d'erreur(Vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requis dans la table 'PRODUIT'.). alors je pense que sa ne me retourne pas la valeur ki est contenue dans les cellules.merci davance

Répondre à sistaroro

7

sistaroro, le 8 fév 2008 à 14:18:51

En fait, sa me retourne 0 pour le numéro du produit et la quantité alors que les valeurs affichées c'est 2 pour le produit et 1 pour la quantité

Répondre à sistaroro

8

Scalpweb, le 8 fév 2008 à 14:31:42

Tu es sur que tu ne pointes pas les mauvaises cases ?

Répondre à Scalpweb

9

sistaroro, le 8 fév 2008 à 14:46:22

Ben je pense que non, pour la quantité je fais :

quantite = CType(grille(3, i).Value, Integer) avec i le nombre de lignes de la facture
et le numéro du produit
num_produit = CType(grille(0, i).Value, Integer)
et je fais une boucle pour de i=0 jusqau nombre de lignes.

Sur le datagridview, la quantité est la 4eme colonne et le numéro du produit la 1ere colonne.

j'ai cru comprendre que l'on commencait a compter a partir de 0.

Répondre à sistaroro

10

Scalpweb, le 8 fév 2008 à 14:50:56

Oui c'est bien ça...

JE ne suis pas expert en VBA, et la je sèche...

jvais réfléchir.

passe moi un lien vers ton fichier au pire

Répondre à Scalpweb

11

sistaroro, le 8 fév 2008 à 14:55:06

C'est du VB 2005.euh ben mon projet est sur mon pc.je n'ai pas de lien

Répondre à sistaroro

12

Scalpweb, le 8 fév 2008 à 14:56:08

Tu ne peux pas l'uploader sur un serveur ?

Répondre à Scalpweb

13

sistaroro, le 8 fév 2008 à 14:57:09

Quel serveur par exemple?

Répondre à sistaroro

15

Scalpweb, le 8 fév 2008 à 15:00:09

Laisse tomber...

On va faire un truc, écrit ce code :

j = ajouter_facture.grille.Rows.Count

For i = 0 To i = j

For i = 1 to 5
For j = 1 To 5
msgbox i & ";" & j & "->" & ajouter_facture.grille(i,j).value
Next
Next

Et regardes pour quels valeurs tu vois aparaitre tes valeurs.

Répondre à Scalpweb

14

Scalpweb, le 8 fév 2008 à 14:57:13

Pour que tu gagnes un peu de temps, en VB2005 :

quantite = CType(ajouter_facture.grille(3, i).Value.ToString, Integer)

peut s'écrire :

quantite = ajouter_facture.grille(3, i).Value

Répondre à Scalpweb

16

sistaroro, le 8 fév 2008 à 15:12:21

Après la flèche je n'ai aucune valeur qui saffiche

Répondre à sistaroro

17

Scalpweb, le 8 fév 2008 à 15:14:21

Et avec ce code là ?

For i = 1 to 5
For j = 1 To 10
msgbox i & ";" & j & "->" & ajouter_facture.grille(i,j).value.ToString
Next
Next

Répondre à Scalpweb

18

sistaroro, le 8 fév 2008 à 15:20:04

Sa m'affiche les valeurs qui sont dans les cellules.dans mon cas qu'est ce qu'il faut faire alors?

Répondre à sistaroro

19

Scalpweb, le 8 fév 2008 à 15:27:14

Il faut savoir les valeurs i et j correspondantes au valeurs que tu veux...

Pour être sur que ta boucle pointe bien vers les bonnes.

Tu comprends ?

Répondre à Scalpweb

20

sistaroro, le 8 fév 2008 à 15:35:31

Oui mais une fois que je sais,
le numéro du produit c'est (0,i) et pour la quantité c'est (3,i) .
Je dois faire 2 pour imbriqués ou un seul suffit?

Répondre à sistaroro

21

Scalpweb, le 8 fév 2008 à 15:39:12

Ton code devrait marcher...

Essayes de rajouter :

msgbox quantite & "-" & num_produit

Après :

Dim num_produit AsInteger

num_produit = CType(ajouter_facture.grille(0, i).Value.ToString, Integer) 


Est-ce les bonnes valeurs qui s'affichent ?

Répondre à Scalpweb

22

sistaroro, le 8 fév 2008 à 15:46:42

Sa a l'air de fonctionner mais sa me donne 3 msgbox alors qu'il n'y a que 2 lignes dans le datagridview

Répondre à sistaroro