System.NullReferenceException: Object reference not set to an instance of an object.
Dim sSporten as string = Rec("sport").tostring
if NOT ssporten = "-1" then
sporter.Items.FindByValue(sSporten).Selected = true
end if
Här hänger jag inte med på vad den vill. sSporten innehåller det värde jag vill. Det är testat. Samt att sporter är en listbox i ett webform. Det funkar på andra ställen med i princip samma kod.
Vad brukar vara felet?
Yupp. Om jag skriver ut sSporten eller sSporten.tostring så får jag just det värdet jag vill ha.
Samt att jag har en <asp:listbox id=sporter runat=server size=1 /> längre ner på sidan.
Tycker det verkar vara något att den inte kommer åt objectet sporter?
Koden som genererar felet ligger inom en sub som körs. Alla andra värden lägga i sina <asp:textbox id=bla runat=server />. Alla utom just att denna inte vill välja rätt värde. Värdet finns i listboxen. Visserligen kommer värdet i listboxen ur en integer-kolumn. Men det gör denna också..
sub page_load()
Dim objcmd2 As new OleDbCommand("SELECT sport, id FROM sporter ORDER BY sport", conn)
sporter.DataTextField = "sport"
sporter.DataValueField = "id"
sporter.DataSource = objcmd2.ExecuteReader()
sporter.DataBind()
sporter.Items.Insert(0, new ListItem("-- Välj sport nedan --", "-1"))
end sub
sub redigera()
Dim cmd as OleDbCommand = new Oledbcommand("SELECT id, rubrik, nyhet, sport FROM nyheter WHERE ID = " & choID, conn)
Dim Rec as OleDbDataReader
conn.open()
Rec = cmd.ExecuteReader()
if Rec.Read() then
rubrik.text = Rec("rubrik")
nyhet.text = Rec("nyhet")
sporter.Items.FindByValue(Rec("sport")).Selected = true
end if
conn.close()
end sub
</script>
---- Längre ner på sidan
<asp:textbox id=rubrik runat=server />
<asp:textbox id=nyhet runat=server />
<asp:listbox id=sporter runat=server size=1 />
Rubrik samt nyhet får helt rätt värde. Samt att värdet som kommer från Rec("sport") även ligger som value i listboxen. Det finns där.