---
title: "Knapp probem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/183440-knapp-probem"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Mycodez"
published: "2010-05-09T20:08:33.000Z"
updated: "2010-05-17T15:02:09.000Z"
replies: 20
views: 1130
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/183440-knapp-probem"
---

# Knapp probem

_Sida 1 av 2._

## #1 — Mycodez, 2010-05-09T20:08Z

Hej! 

Jag har en liten fråga angående en knapp jag gör till min hemsida. 
Knappen ska öka med ett varje gång den trycks på. 

jag har en label som skriver ut hur många gånger knappen har tryckts på labels namn är lblAntalja

och knappens namn är btnJa

jag kodar i asp.net vb språket 

```
    Protected Sub btnJa_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnJa.Click
        Dim x As Integer
        Dim ja As String = lblAntalja.Text

            x += 1
            lblAntalja.Text = "" & x & " vill komma tillbaka"

    End Sub
```

är det inte så? 
för när jag kodar såhär så stannar label räkning vid 1 .

det värmer med snabbt svar:) 

MVH MyCodez

Permalänk: https://www.webforum.nu/p/183440

## #2 — Peter S, 2010-05-09T20:15Z

Varje gång knappen trycks på så initialiseras x till 0, så du behöver spara undan värdet på något sätt. Antingen gör du x till en medlemsvariabel i klassen:

```
public class Foo
  private x as integer
  ...
end class
```

...eller så kan du göra så här:

```
    Protected Sub btnJa_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnJa.Click
        Dim x As Integer
        Dim ja As String = lblAntalja.Text

            Integer.TryParse(ja, x)
            x = x + 1
            lblAntalja.Text = "" & x & " vill komma tillbaka"

    End Sub
```

Permalänk: https://www.webforum.nu/p/2234640

## #3 — Mycodez, 2010-05-09T20:22Z

sätter man som den sista kod alternativet  så stannar den fortfarande vid 1 ;( men det med public class Foo var sätter man det?

Permalänk: https://www.webforum.nu/p/2234642

## #4 — Peter S, 2010-05-10T10:27Z

Var lite för snabb där: om du istället har två labels, en som håller värdet (lblAntal) och en som håller den statiska texten (lblAntalJa) så fungerar detta:

```
    Protected Sub btnJa_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnJa.Click
        Dim x As Integer
        Dim antal As String = lblAntal.Text

            Integer.TryParse(antal, x)
            x = x + 1
            lblAntal.Text = x

    End Sub
```

Permalänk: https://www.webforum.nu/p/2234663

## #5 — matlin, 2010-05-10T10:53Z

Eller så lagrar du värdet i ViewState så det sparas mellan varje postback. Har använt en C# -\> VB.NET konverterare så är kanske inte bra optimerad VB.NET kod. 

```
    Protected Sub btnJa_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnJa.Click
        Dim clickValue As Integer = 0
        If (Not (ViewState("clickValue")) Is Nothing) Then
            clickValue = Convert.ToInt32(ViewState("clickValue"))
        End If
        clickValue = (clickValue + 1)
        ViewState("clickValue") = clickValue
        lblAntal.Text = clickValue
    End Sub
```

Permalänk: https://www.webforum.nu/p/2234664

## #6 — Mycodez, 2010-05-10T13:09Z

det funakar nu :) men går det att spara x:et för om man stänger ner sidan nu så lagras inte talet i x vi säger att x är 3 se när man har stängt ser sidan igen så e x 0 igen hur sparar man det?

Permalänk: https://www.webforum.nu/p/2234672

## #7 — matlin, 2010-05-10T13:30Z

Mja.. då får du lagra det på servern på något sätt. Antingen i en databas eller en textfil. Eftersom jag inte vet om du har tillgång till någon databas så kommer här en väldigt enkel kodsnutt om hur du kan spara ett värde till en textfil.

```
Dim TargetFile As StreamWriter

        Try
            TargetFile = New StreamWriter("test.txt", True)
        Catch
            Throw New Exception()
        End Try

        Try
            TargetFile.Write(lblAntal.Text)
        Catch
            Throw New Exception()
        End Try

        TargetFile.Close()
```

Ingen bra kod, så jag föreslår att du googlar på spara filer i VB.NET.

Permalänk: https://www.webforum.nu/p/2234673

## #8 — Mycodez, 2010-05-10T13:42Z

Jag har tillgång till en Mysql databas men vet bara ínte hur man kopplar den till sidan riktigt blir mkt tacksam om ni kan fixa en enkel guide eller om ni vet någon bra sidan ;)

Permalänk: https://www.webforum.nu/p/2234674

## #9 — MickeA.com, 2010-05-10T13:51Z

Med hjälp av [Google](http://www.google.com.mt/search?q=vb.net+connect+to+mysql&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a) hittar man bl.a. den här:
<http://www.access-programmers.co.uk/forums/showpost.php?p=440194&postcount=2>

Permalänk: https://www.webforum.nu/p/2234675

## #10 — Mycodez, 2010-05-10T14:39Z

Går det att koppla en SQL databasen till Visual basic (jag kodar i den)

Permalänk: https://www.webforum.nu/p/2234678

## #11 — Mycodez, 2010-05-10T15:48Z

> **[matlin skrev:](https://www.webforum.nu/p/1504680)**
>
> Mja.. då får du lagra det på servern på något sätt. Antingen i en databas eller en textfil. Eftersom jag inte vet om du har tillgång till någon databas så kommer här en väldigt enkel kodsnutt om hur du kan spara ett värde till en textfil.
> 
>
>
> ```
> Dim TargetFile As StreamWriter
> 
>         Try
>             TargetFile = New StreamWriter("test.txt", True)
>         Catch
>             Throw New Exception()
>         End Try
> 
>         Try
>             TargetFile.Write(lblAntal.Text)
>         Catch
>             Throw New Exception()
>         End Try
> 
>         TargetFile.Close()
> ```
>
> 
> 
> Ingen bra kod, så jag föreslår att du googlar på spara filer i VB.NET.

Jag förstår itne riktigt Try saten du har gjort tror du att du kan förklara den?

Permalänk: https://www.webforum.nu/p/2234679

## #12 — matlin, 2010-05-10T16:22Z

> **[Mycodez skrev:](https://www.webforum.nu/p/1504686)**
>
> Jag förstår itne riktigt Try saten du har gjort tror du att du kan förklara den?

```
TargetFile = New StreamWriter("test.txt", True)
```

Här skapar/öppnar vi en fil som heter "test.txt". Vi använder en Try/Catch sats för att fånga eventuella fel som kan ske. Kan t.ex. vara rättighetsfel. Om ett fel uppstår i koden ovan så kastar vi ett generellt Exception fel som bör innehålla problemet som uppstår. Som sagt, inget vackert, men bör fungera.

Vi kan lika gärna göra:

```
        Try
            TargetFile = New StreamWriter("test.txt", True)
            TargetFile.Write(lblAntal.Text)
        Catch
            Throw New Exception()
        End Try
```

Så minskar vi iaf antalet Try/Catch satser.

Permalänk: https://www.webforum.nu/p/2234683

## #13 — Mycodez, 2010-05-10T20:50Z

jag får att Throw New exception() e fel när jag kodar som du göra och så står det 
stackkspårning: 
\[Exception: Ett undantagsfel av typen System.Exception uppstod.\]
   \_Default.btnJa_Click(Object sender, EventArgs e) in C:\\inetpub\\wwwroot\\Default.aspx.vb:21
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +115
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +140
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2981

 om det ka nvar till hjälp fattar inget e ganska ny på detta :)

Permalänk: https://www.webforum.nu/p/2234697

## #14 — Vimp, 2010-05-12T10:23Z

Anledningen till att du bara får ett så pass generellt svar är för att du kastar en ren Exception.

Fånga tag i den befintliga och kasta den istället.

```
Try
  TargetFile = New StreamWriter("test.txt", True)
  TargetFile.Write(lblAntal.Text)
Catch ex As Exception
  Throw ex
End Try
```

Eller så kan du skippa hela try-biten för tillfället.

Permalänk: https://www.webforum.nu/p/2234772

## #15 — Mycodez, 2010-05-12T12:57Z

Okej. men man får tacka ändå

Permalänk: https://www.webforum.nu/p/2234779

## #16 — Nickemannen, 2010-05-15T10:14Z

> **[Vimp skrev:](https://www.webforum.nu/p/1504803)**
>
> Anledningen till att du bara får ett så pass generellt svar är för att du kastar en ren Exception.
>
> Fånga tag i den befintliga och kasta den istället.
>
>
>
> ```
> Try
>   TargetFile = New StreamWriter("test.txt", True)
>   TargetFile.Write(lblAntal.Text)
> Catch ex As Exception
>   Throw ex
> End Try
> ```
>
>
>
> Eller så kan du skippa hela try-biten för tillfället.

Egentligen kan du skippa Try catchen helt och hållet i detta fallet då du inte gör något vettigt i den, snarare förstör mer genom att köra Throw ex och förstör call stacken vid debugging.
Använd hellre Using i detta läget så får du automatiskt en dispose på objektet :)

Och om man fångar ett fel för att utföra något och kasta det ursprunliga vidare utan att förstöra callstacken använd enbart throw så kastas ursprungsexceptionet igen :)

Permalänk: https://www.webforum.nu/p/2234917

## #17 — Mycodez, 2010-05-15T11:38Z

Hur gör man detta med Using då?? sorry e ny på detta

Permalänk: https://www.webforum.nu/p/2234923

## #18 — Nickemannen, 2010-05-16T20:56Z

> **[Mycodez skrev:](https://www.webforum.nu/p/1504988)**
>
> Hur gör man detta med Using då?? sorry e ny på detta

```
Using streamWriter = StreamWriter("test.txt", True)
     streamWriter.Write(lblAntal.Text)
End Using
```

Permalänk: https://www.webforum.nu/p/2234989

## #19 — Mycodez, 2010-05-17T14:20Z

När jag skiver in detta som skrev in Nickemannen med Using får jag detta fel rättare sagt Error meddelande från Visual studio:
type of 'StreamWriter' cannot be inferred from an expression containing 'StreamWriter'.

Vad e det som e fel?
Detta är koden:

```
 

Imports System.IO

        Dim x As Integer
        Dim antal As String = lblAntalja.Text
        Dim TargetFile As StreamWriter

        Integer.TryParse(antal, x)
        x = x + 1
        lblAntalja.Text = x

        Using StreamWriter = StreamWriter("test.txt", True)
            streamWriter.Write(lblAntalja.Text)
        End Using
```

Permalänk: https://www.webforum.nu/p/2235021

## #20 — matlin, 2010-05-17T14:55Z

Din "Using StreamWriter = ..." använder du ett stort 'S' och sedan i din using använder du ett litet 's'.

Prova att ändra "Using StreamWriter = ..." till "Using streamWriter = ..." så borde du inte få det felet.

Permalänk: https://www.webforum.nu/p/2235027

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/183440-knapp-probem  
Nästa sida: https://www.webforum.nu/amne/dotnet/183440-knapp-probem/page2.md
