webForumDet fria alternativet

data till listbox från dataview

.NET

15 svar · 424 visningar · startad av Jymdis

Medlem sedan mars 20016 260 inlägg
Frågan#1

Hej!
Hur får jag lättast ett fält i alla rows i en dataview till en listbox i vb.net?

Medlem sedan juni 200032 967 inlägg
#2

Flyttas till från Visual Basic.

Medlem sedan mars 20016 260 inlägg
#3

bump!

Medlem sedan mars 20016 260 inlägg
#4

Om jag säger såhär, varför får jag:

Additional information: Object reference not set to an instance of an object.

t = objDataSet.Tables("cars")
Medlem sedan apr. 2004778 inlägg
#5

Om jag då säger så här:

1. Hur ser din kod ut innan?
2. Hur deklarerar du t?
3. Hur deklarerar du objDataSet
4. Hur fyller du objDataSet
5. Är du säker på att du har data i objDataSet?

Felet beror på att du inte har deklarerat ett objekt.

Medlem sedan mars 20016 260 inlägg
#6
Private Sub loaddatabase()

        Dim b As objekt = New objekt()
        Dim t As DataTable

        t = objDataSet.Tables("cars")

        Dim myRow As DataRow
        For Each myRow In t.Rows

            b.effekt = (myRow("effekt"))
            b.kaross = (myRow("kaross"))
            b.marke = (myRow("marke"))
            b.modell = (myRow("modell"))
            b.pris = (myRow("pris"))
            b.regnr = (myRow("regnr"))
            b.typ = (myRow("typ"))

        Next myRow
        register.Add(b)

    End Sub

 Private Sub OpenConFillDSetCloseCon()
        'Clear DataView
        objDataView = Nothing
        'Create an DatSet object
        objDataSet = New DataSet()
        'Open a channel to the database
        objConnection.Open()
        'Create an object DataAdapter to the connection and
        'Inform where are the data
        objDataAdapter = New OleDbDataAdapter("Select * FROM cars", objConnection)
        'Fill the dataset
        objDataAdapter.Fill(objDataSet, "cars")
        'Create a DataView object from table "Company"
        objDataView = New DataView(objDataSet.Tables("cars"))
        objCM = CType(Me.BindingContext(objDataView), CurrencyManager)
        'Close the connection
        objConnection.Close()
    End Sub

Public Sub UpdateListbox()
        OpenConFillDSetCloseCon()
        Dim b As objekt = New objekt()
        ListBox1.Items.Clear()
        loaddatabase()

        For Each b In register
            If b.marke = filter.Text Or filter.Text = "" Then
                ListBox1.Items.Add(b.marke & " " & b.typ & " (" & b.regnr & ")")
            End If

        Next
    End Sub
Medlem sedan apr. 2004778 inlägg
#7

Ok, du måste ändra

Dim t As DataTable

till

Dim t As DataTable = New DataTable

annars har du inget object att stoppa in data i.

Medlem sedan mars 20016 260 inlägg
#8

Jo, jag prova med det innan men det gjorde ingen skillnad. Dock så slängde jag in OpenConFillDSetCloseCon() i updatelistbox() och då funkar det iaf utan felmeddelande. Fast det blir bara en tom rad i arrayn "register".
Funkar det inte att göra som jag gjort i updatelistbox om man har dom kolumnerna?

Medlem sedan mars 20016 260 inlägg
#9

Hehe nevermind, ingen data i databsen :P

Medlem sedan mars 20016 260 inlägg
#10

Hur nollställer man en collection?

Medlem sedan jan. 20012 204 inlägg
#11
dim Jymdis as Collection
Jymdis = nothing
' kanske
Medlem sedan mars 20016 260 inlägg
#12

jepps =) testade d själv innan å d fungera ju =)
tackar iaf

Medlem sedan maj 20012 812 inlägg
#13

Ok, du måste ändra

kod:--------------------------------------------------------------------------------
Dim t As DataTable
--------------------------------------------------------------------------------

till

kod:--------------------------------------------------------------------------------
Dim t As DataTable = New DataTable
--------------------------------------------------------------------------------

annars har du inget object att stoppa in data i.

Men PDahlen, nu driver du allt med honom.

Dim t As DataTable = New DataTable

och

Dim t As DataTable
t = objDataSet.Tables("cars")

Fyller båda två variablen t (som är av typen DataTable) med ett DataTable. Den översta med ett nytt Tomt DataTable, medans det andra med ett DataTabel, som bör innehålla data.

Precis som om du gör:

string name;
name = "Magnus";

Lite okoncentrerad kanske :)

- magnus

Medlem sedan apr. 2004778 inlägg
#14

Jo, lite okoncentrerad kanske, MEN, "Object reference not set to an instance of an object" har dykt upp när jag har glömt att sätta NEW på t.ex. DataSet m.m. innan jag försöker fylla dom.
Det var därför jag nämnde det. :)
Men nu när jag gäspar och kliar mig i huvudet så ser jag såklart att det inte ska vara så i det här fallet.

Medlem sedan maj 20012 812 inlägg
#15

Object reference not set to an instance of an object" har dykt upp när jag har glömt att sätta NEW på t.ex. DataSet m.m. innan jag försöker fylla dom.

Där ser man vilket skräp DataSet är :)

Hoppas inte nöff läser detta nu, för då får jag väl honom på halsen :)

- Magnus

Medlem sedan juli 20022 537 inlägg
#16

Gladh skrev:

Object reference not set to an instance of an object" har dykt upp när jag har glömt att sätta NEW på t.ex. DataSet m.m. innan jag försöker fylla dom.

Där ser man vilket skräp DataSet är :)

Hoppas inte nöff läser detta nu, för då får jag väl honom på halsen :)

- Magnus

:moose

265 ms totalt · 3 externa anrop · v20260731065814-full.767b4345
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)