Just nu i M3-nätverket
Gå till innehåll

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


Coffer

Rekommendera Poster

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?

 

Länk till kommentar
Dela på andra webbplatser

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

 

Länk till kommentar
Dela på andra webbplatser

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

 

Länk till kommentar
Dela på andra webbplatser

Tackar. Det löste problemet med FixaTecken.

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

 

Länk till kommentar
Dela på andra webbplatser

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)

 

Länk till kommentar
Dela på andra webbplatser

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)

 

Länk till kommentar
Dela på andra webbplatser

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!

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...