Avatar billede force_master Praktikant
29. juni 2014 - 14:09 Der er 11 kommentarer og
1 løsning

Update database.

Hej
Følgende kode.
Dim dbProvider As String
        Dim dbSource As String
        Dim con As New OleDb.OleDbConnection
        Dim ds As New DataSet
        Dim da As OleDb.OleDbDataAdapter
        Dim sql As String
        Dim x As String
        dbProvider = "PROVIDER=Microsoft.ACE.OLEDB.12.0;"
        dbSource = "Data Source = " & Form1.Label3.Text
        con.ConnectionString = dbProvider & dbSource
        con.Open()
        sql = "SELECT * FROM bruger"
        da = New OleDb.OleDbDataAdapter(sql, con)
        da.Fill(ds, "passwords")
        x = ds.Tables("passwords").Rows(Form1.ComboBox1.SelectedIndex).Item(2)
        If x = TextBox1.Text Then
            If TextBox2.Text = TextBox3.Text Then
                'gem nyt pass
                Dim cb As New OleDb.OleDbCommandBuilder(da)

                ds.Tables("passwords").Rows(Form1.ComboBox1.SelectedIndex).Item(2) = TextBox2.Text
                da.Update(ds, "passwords")

                MsgBox("Password ændret ", MsgBoxStyle.Information, "Password ændret")

            End If
        Else
            MsgBox("Nuværende password forkert", MsgBoxStyle.Critical, "Forkert password")
        End If

        con.Close()
        Me.Close()

Giver denne melding, når den kommer til linjen "da.Update(ds, "passwords")"
Der er en syntaksfejl i UPDATE-sætningen.

Hvor og hvorfor ?
Avatar billede claes57 Ekspert
29. juni 2014 - 14:19 #1
hvorfor
                Dim cb As New OleDb.OleDbCommandBuilder(da)

                ds.Tables("passwords").Rows(Form1.ComboBox1.SelectedIndex).Item(2) = TextBox2.Text
                da.Update(ds, "passwords")

?
skal det så ikke være cb.update
Avatar billede force_master Praktikant
29. juni 2014 - 14:25 #2
troede jeg også men giver følgende fejl
Error    1    'Update' is not a member of 'System.Data.OleDb.OleDbCommandBuilder'.
Avatar billede arne_v Ekspert
29. juni 2014 - 14:25 #3
proev og insaet:

da.UpdateCommand = cb.GetUpdateCommand

foer du opdaterer.

Det burde ske automatisk, men jeg har set det foer at det ikke er tilfaeldet.
Avatar billede force_master Praktikant
29. juni 2014 - 14:35 #4
indsat lige her.

If TextBox2.Text = TextBox3.Text Then
                'gem nyt pass
                Dim cb As New OleDb.OleDbCommandBuilder(da)
                da.UpdateCommand = cb.GetUpdateCommand
                ds.Tables("passwords").Rows(Form1.ComboBox1.SelectedIndex).Item(2) = TextBox2.Text
                da.Update(ds, "passwords")

                MsgBox("Password ændret ", MsgBoxStyle.Information, "Password ændret")

            End If

samme fejl ;(
Avatar billede claes57 Ekspert
29. juni 2014 - 14:54 #5
Prøv at udskrive kaldet i stedet for at kalde .update
Avatar billede force_master Praktikant
29. juni 2014 - 15:01 #6
how ?
Avatar billede force_master Praktikant
29. juni 2014 - 15:14 #7
hvis ikke jeg ændrer mit password, kører den update korrekt igennem, tror jeg da, den kommer ihverfald ikke med fejlen.
Avatar billede claes57 Ekspert
29. juni 2014 - 15:24 #8
ret fra
da.Update(ds, "passwords")
til
msgbox(ds)
bare for at se om data er der de rigtige steder i kaldet.
Avatar billede force_master Praktikant
29. juni 2014 - 15:28 #9
Argumentet 'Prompt' kan ikke konverteres til typen 'String'.

hjalp ikke meget
Avatar billede force_master Praktikant
29. juni 2014 - 16:02 #10
da.UpdateCommand = cb.GetUpdateCommand

giver denne output

                "UPDATE bruger SET password = ? WHERE ((Id = ?) AND ((? = 1 AND user IS NULL) OR (user = ?)) AND ((? = 1 AND password IS NULL) OR (password = ?)))"

hvordan hænger det lige sammen ?
Avatar billede force_master Praktikant
29. juni 2014 - 16:11 #11
før i tiden brugte jeg en kommando som denne her

SQL = "UPDATE fak SET udskrevet='" & xx & "' WHERE faknr= '" & List1.Text & "'"
Set rs = Myconn.Execute(SQL)


er det ikke noget der kan omskrives til nye format ?
det var fra vb6.
Avatar billede force_master Praktikant
29. juni 2014 - 16:42 #12
nå nu virker det, ændrede bare mine database felter navne til noget andet,, havde brugt "user" og "passwords". da de blev ændret til noget andet virkede det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester