kerry974
Messages postés3Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention13 avril 2008
-
12 avril 2008 à 17:59
kerry974
Messages postés3Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention13 avril 2008
-
13 avril 2008 à 02:59
Bonjour,
je suis en train de programmer une application manipulant une base de donnée, mon programme arrive à la lire, le problème arrive quand je veux modifier ma base de donnée, sa me dit que la génération SQL dynamique n'est pas prise en charge pour plusieurs tables de base.
Voici mon code:
Imports System.Data.OleDb
Public
Class
ecran_principal
Private
cnx
As
OleDbConnection
'Déclaration de la variable pour la commande
Private
cmd
As
OleDbCommand
'Déclaration de la variable pour le dataadapter
Private
dta
As
OleDbDataAdapter
'Déclaration de la variable pour le dataset
Private
dts
As
New
DataSet
'Déclaration de la variable pour la requête
Private
sql
As
String
'Déclaration de la variable pour la datatable
Private
dtt
As
DataTable
'Déclaration de la variable pour le datarow
Private
dtr
As
DataRow
'Déclaration de la variable pour le Nº de l'enregistrement
Private
rownum
As
Integer
'Déclaration de la variable pour la connectionstring
Private
cnxstr
As
String
'Déclaration de la variable pour le commandbuilder
Private
cmdb
As
OleDbCommandBuilder
Private
Sub
ecran_principal_Load(
ByVal
sender
As
System.Object,
ByVal
e
As
System.EventArgs)
Handles
MyBase
.LoadTimer.Interval = 500
Timer.Start()
precedent.Visible =
False
'ouverture de la connection(à partir du répertoire de l'application)sur la même ligne
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 13 avril 2008 à 01:35
Salut
Et si tu nous disais où ça te dit ça, sur quelle ligne.
Si tu dois coller du code, bien sur sans la forme, respecte les normes d'appellation des objets et variables.
Par exemple, le nom d'un bouton devrait commencer par cmd afin que, au premier coup d'oeil, on sache de quoi il s'agit.
Sans ces détails, si l'on veut recomposer ton projet, c'est trop fastidieux de jouer aux devinettes.
+
"quand je veux modifier ma base de donnée" : quand tu veux modifier quoi ? la structure des tables ? ajouter/supprimer des tables ? des champs ? des données ?
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
kerry974
Messages postés3Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention13 avril 2008 13 avril 2008 à 02:59
Bonjour,
excusez moi pour le copier-coller bin voila j'ai fait une requête sur 3 tables : CLIENT, MACHINE, SAV
"SELECT CLIENT.nom, CLIENT.prenom, SAV.nosav, SAV.date_depot, SAV.diagnostique, SAV.tacheafaire, SAV.important, SAV.note, MACHINE.description FROM (CLIENT INNER JOIN MACHINE ON CLIENT.noclient MACHINE.noclient) INNER JOIN SAV ON MACHINE.nomachine SAV.nomachine;"
pour afficher les données dans les textbox il n'y a pas de problèmes, toutes les données y sont, mais quand je veux modifier une ligne des 3 tables à l'aide du bouton modifier de ma form j'obtiens à l'update que j'ais mis <dta.Update(dts, "CLIENT" )> : la génération SQL dynamique n'est pas prise en charge pour plusieurs tables de base. System.InvalidOperationException
Private
Sub
modifier_Click(
ByVal
sender
As
System.Object,
ByVal
e
As
System.EventArgs)
Handles
modifier.Click
cnx.Open()
' Extraire l'enregistrement courant
dtr = dts.Tables(
"CLIENT" ).Rows(rownum)
'Modifier les valeurs des champs en récupérant le contenu des TextBox
dtr(
"Nom" ) = Me .nomclient.Text
dtr(
"Prenom" ) = Me .prenomclient.Text
'Pour modifier les valeurs changées dans le DataAdapter
cmdb =
New OleDbCommandBuilder(dta)
'Mise à jour
dta.Update(dts,
"CLIENT" )
'On vide le DataSet et on le 'recharge' de nouveau.
kerry974
Messages postés3Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention13 avril 2008 13 avril 2008 à 02:59
Bonjour,
excusez moi pour le copier-coller bin voila j'ai fait une requête sur 3 tables : CLIENT, MACHINE, SAV
"SELECT CLIENT.nom, CLIENT.prenom, SAV.nosav, SAV.date_depot, SAV.diagnostique, SAV.tacheafaire, SAV.important, SAV.note, MACHINE.description FROM (CLIENT INNER JOIN MACHINE ON CLIENT.noclient MACHINE.noclient) INNER JOIN SAV ON MACHINE.nomachine SAV.nomachine;"
pour afficher les données dans les textbox il n'y a pas de problèmes, toutes les données y sont, mais quand je veux modifier une ligne des 3 tables à l'aide du bouton modifier de ma form j'obtiens à l'update que j'ais mis <dta.Update(dts, "CLIENT" )> : la génération SQL dynamique n'est pas prise en charge pour plusieurs tables de base. System.InvalidOperationException
Private
Sub
modifier_Click(
ByVal
sender
As
System.Object,
ByVal
e
As
System.EventArgs)
Handles
modifier.Click
cnx.Open()
' Extraire l'enregistrement courant
dtr = dts.Tables(
"CLIENT" ).Rows(rownum)
'Modifier les valeurs des champs en récupérant le contenu des TextBox
dtr(
"Nom" ) = Me .nomclient.Text
dtr(
"Prenom" ) = Me .prenomclient.Text
'Pour modifier les valeurs changées dans le DataAdapter
cmdb =
New OleDbCommandBuilder(dta)
'Mise à jour
dta.Update(dts,
"CLIENT" )
'On vide le DataSet et on le 'recharge' de nouveau.