begin process at 2008 05 16 05:08:00
1 173 215 membres
57 nouveaux aujourd'hui
13 970 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : probleme d'ajout d'une ligne avec dataset [ Divers / General ] (gargourifahmi)

probleme d'ajout d'une ligne avec dataset le 12/11/2006 17:12:34

gargourifahmi
J'ai telechargé un code source de l'application access et ado.net et j'ai essayer de faire les modification necessaire pour l'adapter a sql server.
Resultat:toutes les procedures marchent sauf celle de l'ajout d'une ligne,une exception "erreur systeme" est generée lorsque j'essaie d'enregistrer la ligne que je voulais ajouter et lexecution s'arrete au niveau de l'instruction d'Update du dataadapter.
J'ai fait toutes les verifications que je connaisse mais le probleme persiste.
Aidez moi SVP...
NB:toutes  les procedures sont faites  par la methode du dataset et dataadapter.
Merci d'avance.

Re : probleme d'ajout d'une ligne avec dataset le 13/11/2006 18:53:30

kazer04
envoie le bout de code qui bug

Re : probleme d'ajout d'une ligne avec dataset le 13/11/2006 18:54:35

kazer04
tu peu le faire en message

Re : probleme d'ajout d'une ligne avec dataset le 13/11/2006 19:38:25

gargourifahmi
Private Sub btnenr_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnenr.Click
        cnx.Open()
        sql = "select * from test"
        cmd = New SqlCommand(sql)
        dta = New SqlDataAdapter(cmd)
        cmd.Connection() = cnx
        'si un champ n'est pas rempli fin de procédure
        If Me.txtnom.Text = "" Or _
           Me.txtprenom.Text = "" Or _
           Me.txtjob.Text = "" Then

            MessageBox.Show("Vous devez remplir tous les champs !", "Erreur...", MessageBoxButtons.OK, MessageBoxIcon.Error)

            Me.txtnom.Focus()

            Exit Sub

        End If
        dta.InsertCommand = New SqlCommand("insert into test(reference,nom,prenom,emploi) Values (@reference,@nom,@prenom,@emploi",cnx)
        dta.InsertCommand.Parameters.Add("@reference", SqlDbType.Decimal, 9, "reference")
        dta.InsertCommand.Parameters.Add("@nom", SqlDbType.Text, 16, "nom")
        dta.InsertCommand.Parameters.Add("@prenom", SqlDbType.Text, 16, "prenom")
        dta.InsertCommand.Parameters.Add("@emploi", SqlDbType.Text, 16, "emploi")
        'cr?tion d'une nouvelle ligne avec les données des textbox

        dtr = dts.Tables("test").NewRow()
        dtr("nom") = Me.txtnom.Text
        dtr("prenom") = Me.txtprenom.Text
        dtr("emploi") = Me.txtjob.Text

        'ajout de la ligne dans le DataSet
        dts.Tables("test").Rows.Add(dtr)

        'création et exécution du commandbuilder
        'pour mettre à jour le DataAdapter

        cmdb = New SqlCommandBuilder(dta)


        'mise à jour des données du DataAdapter
        'à partir du commandbuilder
        dta.Update(dts, "test")  "c'est ici que l'execution genere l'erreure systeme

        'on vide le dataset pour le recréer avec
        'les nouvelles données

        dts.Clear()
        dta.Fill(dts, "test")
        dtt = dts.Tables("test")

        'mise à jour de la datagrid
        DataGrid1.SetDataBinding(dts, "test")


        'aller au début du fichier
        rownum = 0

        'affichage des données dans les texbox
        Me.txtref.Text = dtt.Rows(rownum).Item("reference")
        Me.txtnom.Text = dtt.Rows(rownum).Item("nom")
        Me.txtprenom.Text = dtt.Rows(rownum).Item("prenom")
        Me.txtjob.Text = dtt.Rows(rownum).Item("emploi")

        'activation des boutons
        btnp.Enabled = True         'premier
        btnprec.Enabled = True      'précédent
        btnsui.Enabled = True       'suivant
        btnder.Enabled = True       'dernier

        btnmod.Enabled = True
        btnsup.Enabled = True

        btnajou.Enabled = True
        btnenr.Enabled = False      'valider

        btnajou.Text = "Ajouter"

        cnx.Close()


    End Sub

RQ: ce code est pris des codes source du site avec comme j'avais dit des modification
afin de l'adapter a sql server.



Re : probleme d'ajout d'une ligne avec dataset le 24/04/2008 18:15:16

l0r3nz1
en remplacant:
dad.Update(dst, "test")  
par:
        Try
            If dst.HasChanges Then
                dad.ContinueUpdateOnError = True
                MsgBox(" maj : " & dad.Update(dst, table)) 'Update requiert un UpdateCommand valide lors du passage de la collection DataRow avec des lignes modifiées.
            Else
                MsgBox("aucun changement")
            End If

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

tu résoud une partie du problemme.


Classé sous : ligne, probleme, dataset, ajout, procedures

Participer à cet échange

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS