Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


If-sats

Postades av 2004-05-07 16:40:03 - Mikael Johansson, i forum asp.net generellt, Tråden har 10 Kommentarer och lästs av 469 personer

Jag tänkte göra en databasdriven meny där länkarna radas upp beroende på vem man är. För att avgöra det läser jag in ett värde i en session, och det fungerar bra. Men när jag ska göra en if-sats fungerar det inte. Det verkar som variabeln från sessionen inte får något värde, eller (det mer troliga) så gör jag fel. Tack för hjälpen på förhand.

Function getPage() As System.Data.DataSet
Dim kat As String = lblKat.Text

Dim connectionString As String = "server='(local)'; trusted_connection=true; database='TM'"
Dim dbConnection As System.Data.IDbConnection = New System.Data.SqlClient.SqlConnection(connectionString)

If (kat = "1") Then
Dim queryString As String = "SELECT [Navigering].* FROM [Navigering] WHERE (([Navigering].[Kategori] = '1') AND ([Navigering].[Kategori] = '2') AND ([Navigering].[Kategori] = '3')) ORDER BY [Namn]"
Else If (kat = "2") Then
Dim queryString As String = "SELECT [Navigering].* FROM [Navigering] WHERE (([Navigering].[Kategori] = '2') AND ([Navigering].[Kategori] = '3')) ORDER BY [Namn]"
Else
Dim queryString As String = "SELECT [Navigering].* FROM [Navigering] WHERE ([Navigering].[Kategori] = '3') ORDER BY [Namn]"
End If
Dim dbCommand As System.Data.IDbCommand = New System.Data.SqlClient.SqlCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.SqlClient.SqlDataAdapter
dataAdapter.SelectCommand = dbCommand
Dim dataSet As System.Data.DataSet = New System.Data.DataSet
dataAdapter.Fill(dataSet)

Return dataSet
End Function


Svara

Sv: If-sats

Postades av 2004-05-07 16:44:02 - Patrik Löwendahl

Du kan inte dimensionera en variabel i en if sats och sedan använda den utifrån. Har du Option Explicit påslaget??


Prova det här:

<code>
Function getPage() As System.Data.DataSet
Dim kat As String = lblKat.Text

Dim connectionString As String = "server='(local)'; trusted_connection=true; database='TM'"
Dim dbConnection As System.Data.IDbConnection = New System.Data.SqlClient.SqlConnection(connectionString)

Dim queryString as String

If (kat = "1") Then
queryString = "SELECT [Navigering].* FROM [Navigering] WHERE (([Navigering].[Kategori] = '1') AND ([Navigering].[Kategori] = '2') AND ([Navigering].[Kategori] = '3')) ORDER BY [Namn]"
Else If (kat = "2") Then
queryString = "SELECT [Navigering].* FROM [Navigering] WHERE (([Navigering].[Kategori] = '2') AND ([Navigering].[Kategori] = '3')) ORDER BY [Namn]"
Else
queryString = "SELECT [Navigering].* FROM [Navigering] WHERE ([Navigering].[Kategori] = '3') ORDER BY [Namn]"
End If
Dim dbCommand As System.Data.IDbCommand = New System.Data.SqlClient.SqlCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.SqlClient.SqlDataAdapter
dataAdapter.SelectCommand = dbCommand
Dim dataSet As System.Data.DataSet = New System.Data.DataSet
dataAdapter.Fill(dataSet)

Return dataSet
End Function
</code>


Svara

Sv: If-sats

Postades av 2004-05-09 12:25:48 - Mikael Johansson

Har försökt sätta på Option Explicit, men det går inte. Får bara felmeddelande hur jag än sätter den, något tips?


Svara

Sv: If-sats

Postades av 2004-05-09 12:47:09 - Mikael Johansson

Hela koden ser ut så här:

<%@ Control Language="VB" Debug="true" %>
<script runat="server">

Function getPage() As System.Data.DataSet
Dim kat As Integer = Session("Kat")
Dim connectionString As String = "server='(local)'; trusted_connection=true; database='hemsidan'"
Dim dbConnection As System.Data.IDbConnection = New System.Data.SqlClient.SqlConnection(connectionString)

Dim queryString as String

If (kat = "1") Then
queryString = "SELECT [navigering].* FROM [navigering] WHERE (([navigering].[Kategori] = '1') AND ([navigering].[Kategori] = '2') AND ([navigering].[Kategori] = '3') AND ([navigering].[Kategori] = '4') AND ([navigering].[Kategori] = '5')) ORDER BY [Sida]"
Else If (kat = "2") Then
queryString = "SELECT [navigering].* FROM [navigering] WHERE (([navigering].[Kategori] = '2') AND ([navigering].[Kategori] = '3')) ORDER BY [Sida]"
Else
queryString = "SELECT [navigering].* FROM [navigering] WHERE ([navigering].[Kategori] = '3') ORDER BY [Sida]"
End If
Dim dbCommand As System.Data.IDbCommand = New System.Data.SqlClient.SqlCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.SqlClient.SqlDataAdapter
dataAdapter.SelectCommand = dbCommand
Dim dataSet As System.Data.DataSet = New System.Data.DataSet
dataAdapter.Fill(dataSet)

Return dataSet
End Function

Sub Page_Load()
If Not Page.IsPostBack Then
DataList1.DataSource = getPage()
DataList1.DataBind()
End If
End Sub

Sub Button1_Click(sender As Object, e As EventArgs)
Session.Abandon
Response.redirect("../../default.aspx")
End Sub

</script>
<p>
<asp:DataList id="DataList1" Font-Size="X-Small" runat="server">
<ItemTemplate>
<asp:HyperLink id="HyperLink1" runat="server" style="TEXT-DECORATION: none" Text='<%# DataBinder.Eval(Container, "DataItem.Sida") %>' NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.URL") %>' ForeColor="White"></asp:HyperLink>
</ItemTemplate>
</asp:DataList>
<br />
<asp:Button id="Button1" onclick="Button1_Click" runat="server" Text="Logga ut"></asp:Button>
</p>


Svara

Sv: If-sats

Postades av 2004-05-09 13:07:39 - Andreas Håkansson

Skulle du kunna slänga in vad du får för fel? Det underlättar juh drastiskt om man skall felsöka. Sen en sak ang. Option Explicit - om du får en massa fel när den är påslagen så gör den juh sitt jobb? :-D

//Andreas


Svara

Sv: If-sats

Postades av 2004-05-09 13:11:08 - Mikael Johansson

Problemet är att utan option explicit så funkar sidan förutom att länkarna inte kommer upp, den verkar inte köra if-satsen alls. Sen när jag försöker lägga in Option Explicit, så klagar den hela tiden på att jag lägger den på fel ställe.


Svara

Sv: If-sats

Postades av 2004-05-09 13:33:03 - Göran Andersson

Efterom kat är en integer så ska du inte jämföra den med en sträng utan ett tal:

If (kat = 1) Then


Svara

Sv: If-sats

Postades av 2004-05-09 13:36:24 - Mikael Johansson

Bra förslag, gjorde dock ingen skillnad :(


Svara

Sv: If-sats

Postades av 2004-05-09 13:47:20 - Göran Andersson

Du kanske skulle testa dina databasfrågor också. ;)

Titta på den här frågan:

queryString = "SELECT [navigering].* FROM [navigering] WHERE (([navigering].[Kategori] = '1') AND ([navigering].[Kategori] = '2') AND ([navigering].[Kategori] = '3') AND ([navigering].[Kategori] = '4') AND ([navigering].[Kategori] = '5')) ORDER BY [Sida]"

Den kommer aldrig att returnera en enda post, oavsett vad som ligger i databasen. Ett fält kan nämligen inte ha flera värden samtidigt. Kategori kan inte samtidigt vara 1, 2, 3, 4 och 5, vilket krävs för att frågan ska returnera något.

Du får använda or mellan villkoren istället:

queryString = "SELECT [navigering].* FROM [navigering] WHERE (([navigering].[Kategori] = '1') OR ([navigering].[Kategori] = '2') OR ([navigering].[Kategori] = '3') OR ([navigering].[Kategori] = '4') OR ([navigering].[Kategori] = '5')) ORDER BY [Sida]"

Eller ännu enklare:

queryString = "SELECT [navigering].* FROM [navigering] WHERE [navigering].[Kategori] IN ('1','2','3','4','5') ORDER BY [Sida]"


Svara

Sv: If-sats

Postades av 2004-05-09 14:20:35 - Mikael Johansson

Hmmm, hur ska man ställa frågan? Någon som har ett förslag?


Svara

Sv: If-sats

Postades av 2004-05-09 14:21:46 - Mikael Johansson

Ahhh nu förstår jag, tack :)


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 602
27 953
271 705
5 927
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies