webForumDet fria alternativet

System.NullReferenceException

7 svar · 240 visningar · startad av cyprys

cyprysMedlem sedan dec. 20003 563 inlägg
#1

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?

SPiNMedlem sedan mars 20007 896 inlägg
#2

Du är säker på att sporter är instansierad?

Jag vet inte hur VB.NET reagerar på ssporten, kanske det är case-sensitive och du är tvungen att skriva sSporten?

EkströmMedlem sedan feb. 20022 594 inlägg
#3

VB är inte case sensitive, C# däremot är det.

NETworkMedlem sedan juni 20011 732 inlägg
#4

sSporten innehåller det värde jag vill.

Innehåller "sporter" det värde du söker efter då?

cyprysMedlem sedan dec. 20003 563 inlägg
#5

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å..

*funderar men förstår inte.....

NETworkMedlem sedan juni 20011 732 inlägg
#6

Är det value du vill åt då, inte text (findbytext)? Skicka lite mer kod, lättare att se då...

cyprysMedlem sedan dec. 20003 563 inlägg
#7

Lite uthugget.

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.

cyprysMedlem sedan dec. 20003 563 inlägg
#8

Suck.. Hittade felet.
Jag anropade redigera() innan jag la in värderna i listboxen.
jaja. Tack för hjälpen i alla fall :)

130 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)