Avatar billede stairway_to_heaven Nybegynder
03. oktober 2008 - 17:19 Der er 18 kommentarer og
1 løsning

Gemmer ikke data

JEg sidder og leger med windows form programming i VS2008, har lavet en lille "dims" der gemmer data in en database lokalt (MyData.mdf) og viser det så i en listbox.

Men når jeg åbner programmet igen har den ikke gemt noget, den gemmer kun når programmet er åbent, derefter er alt væk?

Har vedhæftet filen:
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.OleDb

Public Class Form1
    ' A data set for use by the form
    Dim mydataset As DataSet = New DataSet()

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' Configure the connection
        Dim strconn = "Data Source=.\SQLExpress;Integrated Security=true;AttachDbFilename=minsti.....App_Data\MyData.mdf;User Instance=true;"
        Dim conn As SqlConnection = New SqlConnection(strconn)
        ' Create the adapter from the connection
        Dim adapter As SqlDataAdapter = New SqlDataAdapter(conn.CreateCommand())
        adapter.SelectCommand.CommandText = "select * from BrowserData"
        ' Fill the data set with the Customers table
        adapter.Fill(mydataset)

        ' Populate list box
        PopulateListBox()
    End Sub

    Sub PopulateListBox()
        ' Clear the list box
        ListBox.Items.Clear()

        ' Enumerate cached data
        Dim row As DataRow
        For Each row In mydataset.Tables(0).Rows
            Dim item As String = row("name") & ", " & row("bid")
            ListBox.Items.Add(item)
        Next


    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' Ask table for an empty DataRow
        Dim row As DataRow = mydataset.Tables(0).NewRow()


        ' Fill DataRow with column data
        row("name") = TextBox1.Text
        row("date") = DateAndTime.Now


        ' Add DataRow to the table
        mydataset.Tables(0).Rows.Add(row)

        ' Update list box
        PopulateListBox()
    End Sub

End Class
Avatar billede arne_v Ekspert
03. oktober 2008 - 17:38 #1
Jeg kan ikke se nogen steder i koden hvor databasen opdateres.
Avatar billede stairway_to_heaven Nybegynder
03. oktober 2008 - 17:42 #2
Jeg fulgte en guide hvor jeg har dette fra, men det er vel det der er problemet så?!
Avatar billede stairway_to_heaven Nybegynder
03. oktober 2008 - 17:45 #3
Jeg ville egentlig også hellere have en insert sætning syntes det her virker mystisk, men ?! er stadig lidt grøn indenfor dette område.
Avatar billede arne_v Ekspert
03. oktober 2008 - 17:54 #4
Opdatering kode ville nok se ud noget lignende:

adapter.Update(mydataset)
mydataset.AcceptChanges
Avatar billede stairway_to_heaven Nybegynder
03. oktober 2008 - 17:57 #5
Har sat det ind efter adapter.Fill(mydataset), men det virker stadig ikke
Avatar billede arne_v Ekspert
03. oktober 2008 - 18:19 #6
Det skal koeres efter at der er rettet i data.
Avatar billede stairway_to_heaven Nybegynder
03. oktober 2008 - 18:23 #7
Der er ikke rettet i data, men der er tilføjet data
Avatar billede arne_v Ekspert
03. oktober 2008 - 18:28 #8
efter at der er tilfoejet data
Avatar billede stairway_to_heaven Nybegynder
03. oktober 2008 - 18:32 #9
Virker ikke, den vil stadig godt vise det i listboxen, men hvis jeg trykker Show table data er der intet
Avatar billede arne_v Ekspert
04. oktober 2008 - 01:22 #10
Prøv og post koden som den ser ud nu.
Avatar billede stairway_to_heaven Nybegynder
04. oktober 2008 - 10:58 #11
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.OleDb

Public Class Form1
    ' A data set for use by the form
    Dim mydataset As DataSet = New DataSet()

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' Configure the connection
        Dim strconn = "Data Source=.\SQLExpress;Integrated Security=true;AttachDbFilename=C:\Users\kette\Documents\Visual Studio 2008\Projects\WindowsApplication1\WindowsApplication1\App_Data\MyData1.mdf;User Instance=True;"
        Dim conn As SqlConnection = New SqlConnection(strconn)
        ' Create the adapter from the connection
        Dim adapter As SqlDataAdapter = New SqlDataAdapter(conn.CreateCommand())
        adapter.SelectCommand.CommandText = "select * from BrowserData"
        ' Fill the data set with the Customers table
        adapter.Fill(mydataset)

        ' Populate list box
        PopulateListBox()
    End Sub

    Sub PopulateListBox()
        ' Clear the list box


        ' Enumerate cached data
        Dim row As DataRow
        For Each row In mydataset.Tables(0).Rows
            Dim item As String = row("name") & ", " & row("bid")
            ListBox.Items.Add(item)
        Next


    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' Ask table for an empty DataRow
        Dim row As DataRow = mydataset.Tables(0).NewRow()


        ' Fill DataRow with column data
        row("name") = TextBox1.Text
        row("date") = DateAndTime.Now


        ' Add DataRow to the table
        mydataset.Tables(0).Rows.Add(row)
        mydataset.AcceptChanges()
        ' Update list box

        PopulateListBox()
    End Sub

End Class
Avatar billede stairway_to_heaven Nybegynder
04. oktober 2008 - 11:02 #12
Det er som om at den ikke gemmer data i databasen fordi når listboxen viser det gemte data, viser den ikke BID, som har auto_increment sat op, så jeg har mine anelser.
Avatar billede stairway_to_heaven Nybegynder
04. oktober 2008 - 11:02 #13
Kunne du foreslå en god bog mht. programming i dette, sådan til fremtidig brug :-)
Avatar billede arne_v Ekspert
04. oktober 2008 - 16:26 #14
Hm.

Måske jeg skulle forklare de 2 linier lidt !

adapter.Update(mydataset) ' opdaterer databasen med ændringer
mydataset.AcceptChanges ' fortæller at ændringerne er lavet og ikke skal laves igen

og da du kun laver den sidste, så ...
Avatar billede stairway_to_heaven Nybegynder
04. oktober 2008 - 16:55 #15
problemet er af jeg får en fejl ved at indsætte begge
Avatar billede stairway_to_heaven Nybegynder
04. oktober 2008 - 16:57 #16
Name 'adapter' is not declared
Avatar billede arne_v Ekspert
04. oktober 2008 - 17:15 #17
adapter (og conn) skal flyttes ud på samme niveau som mydataset
Avatar billede stairway_to_heaven Nybegynder
06. oktober 2008 - 09:20 #18
Der sker stadigvæk ingenting jeg lukker spørgsmålet nu, smid endelig et svar så får du point og det er fordi du hjlp mig videre :-)
Avatar billede arne_v Ekspert
12. oktober 2008 - 04:42 #19
OK
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
Kategori
Kurser inden for grundlæggende programmering

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