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