Just nu i M3-nätverket
Jump to content

System.NullReferenceException: Object variable or With block variable not set.


Coffer

Recommended Posts

Hejsan!

 

Jag har ett irriterande problem som jag inte hittar någon lösning till. Jag har ett par funktioner som jag placerat i en Codebehind som helt enkelt slutade fungera när de inte längre fick ligga i på själva huvudsidan. Den första undersöker förekomsten av radbrytningar och byter ut dessa mot korrekta <br />. Den andra funktionen söker efter ett givet datum och ersätter datumet med dagens namn. Funktionerna fungerar felfritt om de ligger på huvudsidan, men i Codebehind-formuläret trivs den inte alls. Vad är fel?

 

Koden för teckenhanteraren ser ut som följer:

 

Function FixaTecken(ByVal str As String) As String
Dim NewStr As String
NewStr = str.Replace(vbCrLf, "<br />" & vbCrLf)
Return NewStr
End Function

 

Den genererar ett fel som säger att vbCrLf inte är deklarerat.

 

Koden för dagsnamnet ser ut som följer:

 

Function FixDayName(strDate,format) As String
FixDayName = WeekDayName(Weekday(strDate.AddDays(-1)),False)
End Function

 

Den genererar ett fel som säger "System.NullReferenceException: Object variable or With block variable not set."

 

Vad skall jag göra och hur skall jag göra det?

 

Link to comment
Share on other sites

Märkligt att det fungerar över huvudtaget när du inte retunerar något.

 

se nedan

 

Function FixDayName(strDate,format) As String
Dim apa as string
apa = WeekDayName(Weekday(strDate.AddDays(-1)),False)
Return apa
End Function

 

Vet inte om det löser ditt problem, men har du en Function måste du alltid retunera något

 

Link to comment
Share on other sites

Det hjälper inte. Tillägget av en-returnsats påverkar inte felmeddelandet som fortfarande hävdar att objektvariabeln eller With blocket inte är tilldelat...

 

Link to comment
Share on other sites

Tackar. Det löste problemet med FixaTecken.

Nu återstår bara att få FixDayName att fungera. Någon som har en bra lösning?

 

Link to comment
Share on other sites

Nopes. Inget annat meddelande. Det enda som sägs är:

 

System.NullReferenceException: Object variable or With block variable not set.

 

Felet referas till raden:

 

FixDayName = WeekDayName(Weekday(strDate.AddDays(-1)),False)

 

Link to comment
Share on other sites

aha, men frågan är om du inte måste ange att strDate faktiskt är ett datum...

 

alltså:

Function FixDayName(ByVal strDate as DateTime, ByVal format) As String

 

(sen lite OT; fimpa format, då den inte verkar användas)

 

Link to comment
Share on other sites

Jag hittade felet. Jag hade tydligen deklarerat WeekDayName som Array bland alla deklarationerna. Därför letade koden efter en lämplig Array kopplad till WeekDayName som den inte hittade. Nu fungerar allt klockrent. :)

 

Tack för hjälpen!

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...