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

Vad är felet


Oaxe

Rekommendera Poster

Det ser oneklingen litet märkligt ut. Antingen är Session["Antal"] en String och då borde Parse fungera, men vad menar du med -= på en String?

Elle också är Session["Antal"] redan en int och då funkar det inte med Parse :)

Tror att det är enklare att använda sk boxing här:

1. Spara en int = Session["Antal"]

2.

int antal = (int)Session["Antal"]

antal++;

Session["Antal"] = antal;

 

Det går att skriva mer kompakt, men jag ville understryka läsbarheten :)

 

 

 

Länk till kommentar
Dela på andra webbplatser

jerker olofsson

Det vore trevligt med en beskrivning av vilken felmeddelande du får från kompilatorn.

 

Antar att du programmerar C#, då koden du skrivit skulle vara giltlig i C++ också vore det trevligt om du också skrev vilket programmeringsspråk du använder.

 

Kan ingen C#, men det ser ju inte så svårt ut direkt.

Session är tydligen en array med strängar.

 

Int32.Parse() returnerar en integer, och jag vet inte om c# string definierar en operator -= (const Int32& rhs). Kan det vara det som är problemet?

 

Förstår inte vad du vill göra annars.. Verkar konstigt om du lagrar strängar och vill minska resultatet som en integer av strängen ned sig själv. Det blir ju alltid 0.

 

Annars, om det vore 2 olika arrayer, verkar det rimligare.. Då kan tänkas att detta fungerar:

Session["Antal"] = Int32.Parse(Session["Antal"])-Int32.Parse(Session2["Antal"]);

Om det finns en default conversion från en Int32 till en sträng.

 

Vill du annars subtrahera ett tecken från Session strängen, måste du nog konvertera resultatet från Int32.Parse tillbaka till en sträng innan du ropar på -=.. Typ:

Session["Antal"] -= String( Int32.Parse(Session["Antal"]));

 

Är det en array med integers, så är det konstigt att du använder Int32.Parse då det borde räcka med:

Session["Antal"] -= Session["Antal"];

 

Men det är ju som sagt samma sak som att skriva:

Session["Antal"] = 0;

 

Mer kan jag nog inte säga utan en mer detaljerad beskrivning av vad du försöker åstakomma.

 

[inlägget ändrat 2002-09-24 11:09:03 av jerker]

Länk till kommentar
Dela på andra webbplatser

Har testat följande och det fungerar ändå inte..

int iAntal;

 

Line 40:

iAntal = (int)Session["Antal"];

Line 41:

iAntal--;

Line 42:

Session["Antal"]=iAntal;

 

Session["Antal"] är tex 45..

 

Nån som ser felet?

 

Länk till kommentar
Dela på andra webbplatser

Två saker.

1. Posta alltid hela din kod när du vill ha hjälp att felsöka. I många fall är det en helt annan än den du tror som ställer till det.

2. Utan felmeddelandet är det mycket svårare att felsöka, eftersom vi måste gissa oss till vad som händer.

Posta detta och kolla var du sätter Session["Antal"] första gången (och att du sätter den innan du läser den) samt bekräfta att du jobbar i C# med ASP.NET så ska vi titta på ditt problem.

 

Länk till kommentar
Dela på andra webbplatser

Jo det är i C# ASP.NET jag jobbar i. Så här ser hela felmedelandet ut.

Object reference not set to an instance of an object.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

 

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

 

Source Error:

 

 

Line 38: thumb.Save(Server.MapPath( Session["Antal"] +".jpg"), ImageFormat.Jpeg);

Line 39: int iAntal;

Line 40: iAntal = (int)Session["Antal"];

Line 41: iAntal--;

Line 42: Session["Antal"]=iAntal;

 

 

Source File: c:\inetpub\wwwroot\aspx\Upload.aspx Line: 40

 

Stack Trace:

 

 

[NullReferenceException: Object reference not set to an instance of an object.]

ASP.upload_aspx.Page_Load(Object src, EventArgs e) in c:\inetpub\wwwroot\aspx\Upload.aspx:40

System.Web.UI.Control.OnLoad(EventArgs e) +67

System.Web.UI.Control.LoadRecursive() +29

System.Web.UI.Page.ProcessRequestMain() +724

 

 

 

 

--------------------------------------------------------------------------------

Version Information: Microsoft .NET Framework Version:1.0.3705.0; ASP.NET Version:1.0.3705.0

 

Länk till kommentar
Dela på andra webbplatser

Tack för det :)

Jag misstänkter att du aldrig satt Session["Antal"] till något när du kommer till rad 40.

Session["Antal"] returnerar då null vilket ger Exception när du försöker casta det till en int.

Du kan kolla det genom att lägga till en rad innan 38:

if (Session["Antal"] == null) throw(new System.Exception("Session["Antal"] = null!"));

 

 

[inlägget ändrat 2002-09-24 13:19:28 av Junk Junk]

Länk till kommentar
Dela på andra webbplatser

jerker olofsson

Kan som sagt ingen C#, men borde han inte fått ett exception på rad 38 där han accessar Session["Antal"] första gången, och inte på rad 40 om så var fallet.

 

Länk till kommentar
Dela på andra webbplatser

jerker olofsson

 

Fel av mig :)

 

int castningen kastar säkert ett exception.. Session["Antal"] + ".jpg" funkar nog bra om Session["Antal"] returnerar 0..

 

Du har nog rätt.

 

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