begin process at 2012 02 16 10:07:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Base de données

 > 

SQL Server

 > 

update non effectif


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

update non effectif

lundi 28 avril 2008 à 11:20:47 | update non effectif

l0r3nz1

Bonjour, apparemment j'ai un souci avec le vb2005, pourtant j'ai l'impression d'avoir le bon code (vu les questions sur forum) mais voila quelqu'un voit il ou est la faute svp, je n'ai que le message "maj = 0" pour zéro mise à jour au lieu de 3      

'******   declarations                 ******************************
Dim con As SqlConnection ' objet conexion à la BD
Dim com As SqlCommand ' objet commande
Dim dad As SqlDataAdapter ' objet DataAdapter
Dim dst As DataSet ' bjet DataSet
Dim ObjetDataTable As DataTable
Dim objetDataRow As DataRow
Dim bdd
Dim table
Dim champ
Dim chainCom, txt1 As String
Dim comb As New SqlClient.SqlCommandBuilder(dad)

'************    assigner quleques valeurs        *************************
txt1 = Me.text1.Text
bdd = "C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Data\mission.mdf"
table = "recupData"
champ = "commentaire"
con = New SqlConnection("Server=" & My.Computer.Name & "\sqlexpress;Data
con.Open()
Source=.\SQLExpress;Integrated Security=true;AttachDbFilename= " & bdd & ";")
com = New SqlCommand
com.Connection = con
com.CommandType = CommandType.Text
com.CommandText = "SELECT * FROM " & table
dad = New SqlDataAdapter(com)
dst = New DataSet
dst.Clear() ' Vider le Dataset avnt son remplissage
dad.Fill(dst, table) ' Remplissage du Dataset

dst.AcceptChanges()
dst.Tables(0).Rows(5).Item(1) = "mmm"
dst.Tables(0).Rows(4).Item(0) = Me.text1
dst.Tables(0).Rows(3).Item(1) = Me.text2
'MsgBox(dst.Tables(0).Rows(5).Item(1).ToString) ' ca donne 'mmm' ici donc c'est bon
       
        comb.DataAdapter = dad
        Try
            dad.InsertCommand = comb.GetInsertCommand
            dad.DeleteCommand = comb.GetDeleteCommand
            dad.UpdateCommand = comb.GetUpdateCommand
        Catch ex As Exception
            Debug.Print(ex.ToString)
        End Try
 
        Try
            If dst.HasChanges Then
                dad.ContinueUpdateOnError = True
                dad.Update(dst, table)
                MsgBox(" maj : " & dad.Update(dst, table))
            Else
                MsgBox("aucun changement")
            End If

        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
con.Close()


        '******************         test 2  pas conection et utilisation object row             ************************

con.Open()

        com.CommandText = "SELECT * FROM " & table
        dad = New SqlDataAdapter(com)
        dst.Clear()
        dad.Fill(dst, table)
       
        ' Extraire l'enregistrement courant
        ObjetDataTable = dst.Tables(table)
        objetDataRow = ObjetDataTable.NewRow
        objetDataRow("commentaire") = Me.text1
        ObjetDataTable.Rows.Add(objetDataRow)
        objetDataRow = ObjetDataTable.NewRow
        objetDataRow.Item(0) = Me.text2
        ObjetDataTable.Rows.Add(objetDataRow)

        'Modifier les valeurs des champs en récupérant le contenu des TextBox
        'Pour modifier les valeurs changées dans le DataAdapter
        'Mise à jour
        comb = New SqlClient.SqlCommandBuilder(dad)


        Try
            If dst.HasChanges Then
                dad.ContinueUpdateOnError = True
                dad.Update(dst, table)
                dad.Update(ObjetDataTable)
                'MsgBox(" maj : " & dad.Update(dst, table))
                MsgBox(" maj : " & dad.Update(ObjetDataTable))
            Else
                MsgBox("aucun changement")
            End If

        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try


        'On vide le DataSet et on le 'recharge' de nouveau.
        dst.Clear()
con.close()

'*********************************************************************

donc voila je suis certain qu'il y a un pas grand chose mais si l'un d'entre vous a le courage ou l'envie de jeter un coup d'oeil dans ce petit bout de code...

mercredi 30 avril 2008 à 12:48:38 | Re : update non effectif

l0r3nz1

Réponse acceptée !

En fait il faut une clef primaire ( sinon c'est possible mais un peu plus compliqué) la procedure ci dessous est ok!!!

Private
Sub modifAndAdd( ByVal connectionString As String , _

ByVal queryString As String , ByVal tableName As String )

Using connection As New SqlConnection(connectionString)

 

Dim adapter As New SqlDataAdapter()

adapter.SelectCommand =

New SqlCommand(queryString, connection)

Dim builder As SqlCommandBuilder = New SqlCommandBuilder(adapter)

Dim odt As New DataTable

'Dim odr As New DataRow

Dim odr As DataRow

connection.Open()

Dim dataSet As DataSet = New DataSet

adapter.Fill(dataSet, tableName)

' Code to modify data in DataSet here

odt = dataSet.Tables(tableName)

odr = odt.NewRow

odr.Item(0) =

Me .text1.Text

odr.Item(1) =

Me .text2.Text

odt.Rows.Add(odr)

' Without the SqlCommandBuilder this line would fail.

MsgBox(

"nb modif = " & adapter.Update(dataSet, tableName))

connection.Close()

End Using

End Sub


Cette discussion est classée dans : table, update, dst, objetdatatable, dad


Répondre à ce message

Sujets en rapport avec ce message

bouuuuuuh.....mise à jour d'une table !!! [ par preempalver ] Bonjour,j'ai une table access et je souhaite la mettre à jour grace à des valeurs récupérées en boucle et mises dans des variables. La boucle marche m Mettre a jour ma table via UPDATE : marche pas [ par foliop ] salutjai un bouton avec dedans :Dim update As New ADODB.Recordsetn = Text16.Textp = Text18.TextSet update = DE1.Connection1.Execute("Update résultats update dans une table liée!!! [ par blowlagoon ] Bonjour,Je souhaiterais une aide concernant un probleme d'ajout dans une table appelée tblDDCVNI. La table est liée dans une base access à partir d'un sql update (*2?) [ par acorna ] Hello,J'ai besoin de mettre à jour un champ. J'utilise pour cela une requete sql update. L'ennui, c'est que le champ doit etre mis à jour à partir d'a probleme update via dataset [ par papy27 ] salut, je suis tout nouveau dans la programmation vb.net et je voudrai savoir si vous pouvez m'aider.En effet, je créé une table clients sur un servic ado.net update en cascade access [ par drastik74 ] Bonjour, voila j'ai une base access avec plusieurs tables liées entre elles par des relations. Lorsque je veux faire une mise a jour sur la table pare update d'une table access dans vb.net 2003 [ par mehdihalim ] bonjour tout le monde, voila mon problème : il faut que je fasse un update de champs de ma table client mais pour l'instant mon code ne fait absolumen pitié aidé moi!! SQL-ACCESS // UPDATE [ par tchoukette ] Bonjour, J'ai un gros problème pour une requete UPDATEJ'exporte une table B dans ma base de données.Ma table met à jour ma table AIl s'agit de produit Probleme d'update sur un data env. VB6+access [ par Arog ] J'ai crée une base access contenant plusieur table, dont une intervention que je dois modifier. L'utilisateur choisis le client, cela charge toute les requetes sql access [ par micam ] Bonjour,En vb.net est-il possible de lancer plusiers requetes à la suite après un click sur btn?Exemple :requete = "UPDATE table SET (cd = 'inconnu')


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,888 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales