none
vb.net EF + savechanges () is not working RRS feed

  • Question

  • hello :)

    i have a problem udating my database.  the " add " works perfectly but edit is not. I get  no error msg but there is no data saving 

    the delete generates an Error . the code is below : 




    Private Sub BTN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTN.Click
            Dim db As New nadiaEntities
            If BTN.Text = "Ajouter" Then
                Dim Monfournisseur As New FOURNISSEUR
                Monfournisseur.ID_FOURNISSEUR = ComboBox1.Text
                Monfournisseur.NOM_FOURNISSEUR = txtNom_Fournisseur.Text
                Monfournisseur.ADRESSE = txtAdresse.Text
                Monfournisseur.TEL_FOURNISSEUR = TxtTel.Text
                Monfournisseur.MAIL_FOURNISSEUR = TxtMail.Text
                Monfournisseur.SITE_WEB = TxtAdressWeb.Text
                Monfournisseur.PAYS = txtPays.Text
                Monfournisseur.FAX = txtFax.Text
                db.AddToFOURNISSEUR(Monfournisseur)
                db.SaveChanges()
                Me.close()
            ElseIf BTN.Text = "Modifier" Then
    
                Dim Mfournisseur As FOURNISSEUR = (From rec In db.FOURNISSEUR Where rec.ID_FOURNISSEUR = CType(ComboBox1.SelectedItem, FOURNISSEUR).ID_FOURNISSEUR Select rec).First
                Mfournisseur.NOM_FOURNISSEUR = txtNom_Fournisseur.Text
                Mfournisseur.ADRESSE = txtAdresse.Text
                Mfournisseur.TEL_FOURNISSEUR = TxtTel.Text
                Mfournisseur.MAIL_FOURNISSEUR = TxtMail.Text
                Mfournisseur.SITE_WEB = TxtAdressWeb.Text
                Mfournisseur.PAYS = txtPays.Text
                Mfournisseur.FAX = txtFax.Text
                db.SaveChanges()
                db.Dispose()
                Me.Close()
            ElseIf BTN.Text = "Supprimer" Then
    
                For Each row In db.FOURNISSEUR
                    If row.ID_FOURNISSEUR = CType(ComboBox1.SelectedItem, FOURNISSEUR).ID_FOURNISSEUR Then
                        db.DeleteObject(row)
                        db.SaveChanges()
                        Me.Close()
                        Exit For
                    End If
                Next
            End If
    
        End Sub
    
        Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
            Dim db As New nadiaEntities
            For Each row In db.FOURNISSEUR
                If row.ID_FOURNISSEUR = CType(ComboBox1.SelectedItem, FOURNISSEUR).ID_FOURNISSEUR Then
                    txtNom_Fournisseur.Text = row.NOM_FOURNISSEUR
                    txtAdresse.Text = row.ADRESSE
                    TxtTel.Text = row.TEL_FOURNISSEUR
                    TxtMail.Text = row.MAIL_FOURNISSEUR
                    TxtAdressWeb.Text = row.SITE_WEB
                    txtPays.Text = row.PAYS
                    txtFax.Text = row.FAX
                End If
            Next
            db.Dispose()
        End Sub

    Wednesday, November 21, 2012 9:10 AM

Answers

  • Hi,

    You can try to set the entity state to modified before the SaveChanges()

    db.Entry(Mfourisseur).State = EntityState.Modified

    db.SaveChanges()



    Ronald


    • Edited by NRonald Wednesday, November 21, 2012 1:16 PM
    • Proposed as answer by Priscila Mayumi Sato Friday, November 23, 2012 10:49 AM
    • Marked as answer by Alexander Sun Tuesday, November 27, 2012 3:12 AM
    Wednesday, November 21, 2012 1:15 PM