Update en vb.net

Signaler
Messages postés
44
Date d'inscription
jeudi 2 mars 2006
Statut
Membre
Dernière intervention
6 juillet 2009
-
liehuos001
Messages postés
44
Date d'inscription
jeudi 2 mars 2006
Statut
Membre
Dernière intervention
6 juillet 2009
-
bjr j'ai un lèger probleme conecernant update sur vb.net 2003 et ma abse donnees access

' Création de la nouvelle ligne NewLigne = ds.Tables("ajout").NewRow

'affectation des valeurs 

NewLigne(0) = ds.Tables.Item(0).Rows.Count + 1

NewLigne(1) = txtmat.Text

NewLigne(2) = txtref.Text

NewLigne(3) = txtnacqui.Text

NewLigne(4) = txtpacqui.Text

NewLigne(5) = txtpbl.Text

NewLigne(6) = txtsol.Text

NewLigne(7) = txtdat.Text

NewLigne(8) = txtdatrec.Text

' Ajout de la ligne à la table.Tables("ajout").Rows.Add(NewLigne)

' Mise a jour de la base

'Adapajout.Update(DtSet, "ajout") 

' Connection.Open()

' Création CommandBuilder

'(genere automatiquement l'update entre le dataSet et la base de donnéeConnection.Open()

Dim CmdBuild As OleDbCommandBuilderCmdBuild New OleDb.OleDbCommandBuilder(Adapajout)Adapajout.UpdateCommand CmdBuild.GetUpdateCommand()

Adapajout.Update(ds, "ajout")  erreur ##Une exception non gérée du type 'System.Data.OleDb.OleDbException' s'est produite dans system.data.dll##

Connection.Close()

merci de voir mon problème ca marche sur un autre de mes programe mais sur celui la non merci encore de me faire part de vos suggestion

salut ca roule

12 réponses

Messages postés
453
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
11 janvier 2013
7
salut moi j'utilise Object librairie 2.8




If

Form1.MECOURS.Text =


"Avril"





Then




OuvrirBaseSuivi(sIniBaseSuivi)


cmd.ActiveConnection = cnx3


cmd.CommandType = ADODB.CommandTypeEnum.adCmdText


SQL "UPDATE SuiviAnnuel SET SuiviAnnuel.somme '"

& Form1.Label10.Text &


"' "





'"


SQL &" WHERE SuiviAnnuel.id "

& 4cmd.CommandText = SQL

cmd.Execute()

FermerBaseSuivi()



End





If








Catch

ex


As

ExceptionMsgBox(



"Erreur rencontr‚e !"

& vbCrLf & Err.Description, MsgBoxStyle.Critical,


"ERREUR - "

& Err.Number)



End





Try

si cela peut t'aider
cyrille
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
24
Salut,

Cela semble normal.

Ta table ne semble pas avoir de clé primaire, et l'objectbuilder s'appuie sur la clé primaire pour faire commandbuilder.

L'utilisation d'un commandbuilder n'est pas recommandé, les mecanisme utilisé à l'intérieur sont lents (reflexion, et attaque base de données) pour déterminer les ordres SQL a effectuer.

Sur ton autre programme ta table dois avoir une primary key.

@scromania : il faut eviter d'utiliser les instruction adodb (c'est du vb6) il faut passer a ado.net
ensuite ton try catch il faut lire les erreurs dans l'exception et non dans Err (qui n'est pas déclaré et qui ressemble à de la gestion en VB6)

FermerBaseSuivi() --> dans le finally car si tu as une exception ta base de données ne sera pas fermée ;-)

Essaye d'utiliser des requetes parametrées pour plus de sécurité.
Messages postés
44
Date d'inscription
jeudi 2 mars 2006
Statut
Membre
Dernière intervention
6 juillet 2009
1
merci pour l'explication  merci beaucoup c'est tres intérésant sauf que ca ne m'aide pas

ce code et bien et il travail bien dans une autre application mais sur celle ci il m'a gènèrer ce message , alors si je ne utilise pas la cmdbuilder ca ne marche pas et ca génère
Informations supplémentaires :## ereur Update requiert un InsertCommand valide lors du passage de la collection DataRow avec de nouvelles lignes. ##
dzl de faire perdre votre temp j'ai essayer plusieur choses mais rien esque c'est ma base ou qlq chose d'autre je en sais pas c'est pour a que je demande votre aide
salut ca roule
Messages postés
44
Date d'inscription
jeudi 2 mars 2006
Statut
Membre
Dernière intervention
6 juillet 2009
1
warany kanesayen
dzl je suis encore bolquer merci de me mettre dans le droit chemain pour resoudre ce problème

salut ca roule
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
24
Si tu travailles sans le commande builder
il faut renseigner à la main les select command, insert command, ....
C'est le but du comamndbuilder

Ta command select est bien renseignée??
Messages postés
44
Date d'inscription
jeudi 2 mars 2006
Statut
Membre
Dernière intervention
6 juillet 2009
1
j'ai passer plusieur heures a revoir ce code

Public



da

As



New
OleDb.OleDbDataAdapter("SELECT * from tblimp", MyConnection)


Public



Sub
conopen()MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source= E:\Documents and Settings\ferkous\Mes documents\Visual Studio Projects\revenu\bin/bd.mdb;"

MyConnection.Open()


End



Sub






Public



Sub
conclose()MyConnection.Close()


End



Sub








Call
conopen()


' Création CommandBuilder






Try

CmdBuild1 =




New
OleDb.OleDbCommandBuilder(da)


'(genere automatiquement l'update entre le ds et la base de donnée

da.UpdateCommand = CmdBuild1.GetUpdateCommand()


da.Update(ds, tblimp)







Catch
beuga

As
ExceptionMsgBox("3andek hade lbeuga!" & vbCrLf & Err.Description, MsgBoxStyle.Critical, "ERREUR - " & Err.Number)


End



Try






Call
conclose()


End



Sub






Call
conopen()


' Dim Da As New OleDb.OleDbDataAdapter("SELECT * from tblimp", MyConnection)






Dim
Ds

As



New
DataSetda.Fill(Ds, "tblimp")


Dim
Dr

As
DataRow = Ds.Tables("tblimp").NewRow







'/////////////////////////////////////////////////////////////////////////////////////////

Dr(0) = Ds.Tables.Item(0).Rows.Count + 1


Dr(1) = txtdr.Text


Dr(2) = txtra.Text


Dr(3) = txtCRA.Text


Dr(4) = txtvilcom.Text


Dr(5) = txtCVC.Text


Dr(6) = TXTNOM.Text


Dr(7) = TXTADRES1.Text


Dr(8) = txtvill.Text


Dr(9) = TXTIDFISC1.Text


Dr(10) = TXTCIN.Text


Dr(11) = TXTCE.Text


Dr(12) = TXTNOMSOC.Text


Dr(13) = TXTADRS2.Text


Dr(14) = TXTVIL2.Text


Dr(15) = TXTIDFISC2.Text


Dr(16) = TXTCIN2.Text


Dr(17) = TXTCE2.Text


Dr(18) = TXTNAT.Text


Dr(19) = TXTCONSI.Text


Dr(20) = TXTTF.Text


Dr(21) = TXTART.Text


Dr(22) = TXTADREDESI.Text


Dr(23) = TXTCES.Text


Dr(24) = TXTNBANE.Text







If
CKACHA.Checked =

True



Then

Dr(25) = "Achat"







End



If






If
CKECH.Checked =

True



Then

Dr(26) = "Echange"







End



If






If
CKSUC.Checked =

True



Then

Dr(27) = "Succession"







End



If






If
CKDON.Checked =

True



Then

Dr(28) = "donation"







End



If






If
CKAUT.Checked =

True



Then

Dr(29) = "Autre"







End



If

Dr(30) = DTCES.Text







If
CKVENT.Checked =

True



Then

Dr(31) = "Vente"







End



If






If
ckexpo.Checked =

True



Then

Dr(32) = "Expropriation"







End



If






If
CKECHCES.Checked =

True



Then

Dr(33) = "Echange"







End



If






If
CKPRT.Checked =

True



Then

Dr(34) = "Partage"







End



If






If
CKDONCES.Checked =

True



Then

Dr(35) = "Donation"







End



If






If
CKAPORSOC.Checked =

True



Then

Dr(36) = "Apport en société"







End



If






If
CKCESPARSOC.Checked =

True



Then

Dr(37) = "Cession de parts sociales"







End



If






'////////////////////////////////////////////////////////






'////////////////////////////////////////////////////////






' Ajout de la ligne à la table

Ds.Tables("tblimp").Rows.Add(Dr)


DG.DataSource = Ds.Tables("tblimp")



miajou(da, "tblimp", Ds)







beuh merci pour la reponce voici tout mon code pas tout mais lajouter

NB : ce code travail déja dans une autre application
salut ca roule
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
24
Ne mets pas la base de données dans le repertoire BIN
mais ailleurs
Messages postés
44
Date d'inscription
jeudi 2 mars 2006
Statut
Membre
Dernière intervention
6 juillet 2009
1
merci pour votre reponce mais ca ne marche pas j'ai esayer cet methode dans changer la base de la renommer mème d'exporter la table dans une autre base c'est la mème chose erreur dans la commande insert into .
on dit que qunad en ai developeur en doit avoir le sang froid mais ca commence a ménérvé
salut ca roule
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
24
Quelle est la valeur de ton insertcommand
avec un point d'arret ton peu l'avoir

regardes sa valeur
Messages postés
44
Date d'inscription
jeudi 2 mars 2006
Statut
Membre
Dernière intervention
6 juillet 2009
1
da.Update(ds, tblimp) data set as system.data.dataset, src tabel as string
thinx
salut ca roule
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
24
Mets le projet sur internet
box.net cijoint.fr ou autre ou ton site web

et je vais regarder.

Car j'ai pas l'impression que tu comprennes ce que veux-tu?
Et ca n'avance pas
Messages postés
44
Date d'inscription
jeudi 2 mars 2006
Statut
Membre
Dernière intervention
6 juillet 2009
1
merci

juste comment faire l'update entre le dataset et la base données access  est ce la methode :
dataadapter.Update(dataset, "table")

si c'est la methode avec la fonction update je l'ai utiliser et sa ne marche pas , je voudrai savoir si il y a d'autre methode ,

dzl pour le dérengement et meci bien
salut ca roule